Chr*_*ris 14 python plot matplotlib
我正在寻找一种使用Python和matplotlib创建四维图(表面加上色标)的方法.我能够使用前三个变量生成曲面,但我没有成功添加第四个变量的颜色标度.以下是我的数据的一小部分.任何帮助将不胜感激.谢谢
数据子集
var1 var2 var3 var4
10.39 73.32 2.02 28.26
11.13 68.71 1.86 27.83
12.71 74.27 1.89 28.26
11.46 91.06 1.63 28.26
11.72 85.38 1.51 28.26
13.39 78.68 1.89 28.26
13.02 68.02 2.01 28.26
12.08 64.37 2.18 28.26
11.58 60.71 2.28 28.26
8.94 65.67 1.92 27.04
11.61 59.57 2.32 27.52
19.06 74.49 1.69 63.35
17.52 73.62 1.73 63.51
19.52 71.52 1.79 63.51
18.76 67.55 1.86 63.51
19.84 53.34 2.3 63.51
20.19 59.82 1.97 63.51
17.43 57.89 2.05 63.38
17.9 59.95 1.89 63.51
18.97 57.84 2 63.51
19.22 57.74 2.05 63.51
17.55 55.66 1.99 63.51
19.22 101.31 6.76 94.29
19.41 99.47 6.07 94.15
18.99 94.01 7.32 94.08
19.88 103.57 6.98 94.58
19.08 95.38 5.66 94.14
20.36 100.43 6.13 94.47
20.13 98.78 7.37 94.47
20.36 89.36 8.79 94.71
20.96 84.48 8.33 94.01
21.02 83.97 6.78 94.72
19.6 95.64 6.56 94.57
Run Code Online (Sandbox Code Playgroud)
要创建所需的绘图,我们需要使用matplotlib plot_surface
来绘制Z
vs (X,Y)
surface,然后使用keyword参数facecolors
为每个Patch传递一种新颜色.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
# create some fake data
x = y = np.arange(-4.0, 4.0, 0.02)
# here are the x,y and respective z values
X, Y = np.meshgrid(x, y)
Z = np.sinc(np.sqrt(X*X+Y*Y))
# this is the value to use for the color
V = np.sin(Y)
# create the figure, add a 3d axis, set the viewing angle
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.view_init(45,60)
# here we create the surface plot, but pass V through a colormap
# to create a different color for each patch
ax.plot_surface(X, Y, Z, facecolors=cm.Oranges(V))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14614 次 |
最近记录: |