Python 基于边的渐变-matplotlib plot\u trisurf
我正在尝试生成一组点的三维可视化。我需要根据从这些点生成的三角剖分创建这个可视化。此外,我的数据的第三维定义了颜色 更准确地说,我的数据如下:Python 基于边的渐变-matplotlib plot\u trisurf,python,matplotlib,gradient,triangulation,Python,Matplotlib,Gradient,Triangulation,我正在尝试生成一组点的三维可视化。我需要根据从这些点生成的三角剖分创建这个可视化。此外,我的数据的第三维定义了颜色 更准确地说,我的数据如下: 2.17 0.001 0.82044815 2.17 0.002 0.82345825 2.17 0.004 0.82679255 2.17 0.008 0.83334715 2.17 0.016 0.84395915 2.17 0.032 0.8584953 2.21 0.001 0
2.17 0.001 0.82044815
2.17 0.002 0.82345825
2.17 0.004 0.82679255
2.17 0.008 0.83334715
2.17 0.016 0.84395915
2.17 0.032 0.8584953
2.21 0.001 0.77582165
2.21 0.003 0.78520505
2.21 0.009 0.80205985
2.21 0.027 0.83085105
2.24 0.001 0.7227885
2.24 0.002 0.73391615
2.24 0.005 0.7543979
2.24 0.015 0.78798745
2.24 0.003 0.74176635
2.24 0.009 0.77064805
2.24 0.027 0.81042375
2.26 0.001 0.66545585
2.26 0.003 0.7012046
2.26 0.005 0.721067
2.26 0.009 0.7447984
2.26 0.015 0.76715245
2.26 0.027 0.794177
2.27 0.001 0.62916195
2.27 0.003 0.6774642
2.27 0.009 0.72961785
2.27 0.027 0.7861086
2.28 0.001 0.5750828
2.28 0.003 0.65059675
2.28 0.005 0.6802631
2.28 0.009 0.7145367
2.28 0.015 0.74447695
2.28 0.027 0.7774403
2.29 0.001 0.51357255
2.29 0.002 0.581053
2.29 0.003 0.6173075
2.29 0.009 0.6972096
2.29 0.027 0.76793225
2.31 0.001 0.36997965
2.31 0.002 0.474415
2.31 0.003 0.53649295
2.31 0.009 0.6587164
2.31 0.016 0.70870255
2.31 0.027 0.7482423
2.31 0.05 0.7912395
2.34 0.001 0.2204104
2.34 0.002 0.316308
2.34 0.003 0.39256745
2.34 0.004 0.45240835
2.34 0.009 0.5883453
2.34 0.016 0.6590771
2.34 0.027 0.71444205
2.34 0.05 0.7690014
2.38 0.001 0.13286995
2.38 0.002 0.1828288
2.38 0.004 0.2980268
2.38 0.008 0.4507145
2.38 0.016 0.58417075
2.38 0.032 0.6833616
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
dat2 = np.loadtxt("/data/data.txt")
x = dat2[:,0].astype(np.float)
y = dat2[:,1].astype(np.float)
z = dat2[:,2].astype(np.float)
triang = mtri.Triangulation(x, y)
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_trisurf(triang, z, linewidth=0.1, antialiased=True, cmap='gray_r', shade=True)
fig.colorbar(surf)
plt.title('Triplot with trisurf')
plt.show()
我想要的结果是(它是使用latex/pgfplotslibrary生成的):
现在我想使用python生成相同的可视化。不幸的是,我的问题是在每个三角形/面内提供颜色的平滑过渡,如上图所示。我知道如何使用带有选项shading='gouraud'的tripcolor函数生成平滑过渡。是否有类似于使用plot_trisurf绘制我的数据的内容?此外,如何添加组成每个三角形的点
我当前的代码如下:
2.17 0.001 0.82044815
2.17 0.002 0.82345825
2.17 0.004 0.82679255
2.17 0.008 0.83334715
2.17 0.016 0.84395915
2.17 0.032 0.8584953
2.21 0.001 0.77582165
2.21 0.003 0.78520505
2.21 0.009 0.80205985
2.21 0.027 0.83085105
2.24 0.001 0.7227885
2.24 0.002 0.73391615
2.24 0.005 0.7543979
2.24 0.015 0.78798745
2.24 0.003 0.74176635
2.24 0.009 0.77064805
2.24 0.027 0.81042375
2.26 0.001 0.66545585
2.26 0.003 0.7012046
2.26 0.005 0.721067
2.26 0.009 0.7447984
2.26 0.015 0.76715245
2.26 0.027 0.794177
2.27 0.001 0.62916195
2.27 0.003 0.6774642
2.27 0.009 0.72961785
2.27 0.027 0.7861086
2.28 0.001 0.5750828
2.28 0.003 0.65059675
2.28 0.005 0.6802631
2.28 0.009 0.7145367
2.28 0.015 0.74447695
2.28 0.027 0.7774403
2.29 0.001 0.51357255
2.29 0.002 0.581053
2.29 0.003 0.6173075
2.29 0.009 0.6972096
2.29 0.027 0.76793225
2.31 0.001 0.36997965
2.31 0.002 0.474415
2.31 0.003 0.53649295
2.31 0.009 0.6587164
2.31 0.016 0.70870255
2.31 0.027 0.7482423
2.31 0.05 0.7912395
2.34 0.001 0.2204104
2.34 0.002 0.316308
2.34 0.003 0.39256745
2.34 0.004 0.45240835
2.34 0.009 0.5883453
2.34 0.016 0.6590771
2.34 0.027 0.71444205
2.34 0.05 0.7690014
2.38 0.001 0.13286995
2.38 0.002 0.1828288
2.38 0.004 0.2980268
2.38 0.008 0.4507145
2.38 0.016 0.58417075
2.38 0.032 0.6833616
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
dat2 = np.loadtxt("/data/data.txt")
x = dat2[:,0].astype(np.float)
y = dat2[:,1].astype(np.float)
z = dat2[:,2].astype(np.float)
triang = mtri.Triangulation(x, y)
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_trisurf(triang, z, linewidth=0.1, antialiased=True, cmap='gray_r', shade=True)
fig.colorbar(surf)
plt.title('Triplot with trisurf')
plt.show()
上述代码的结果是: