dif*_*teD 6 python plot matplotlib
我正在使用以下行来绘制3D曲面:
surf = ax3.plot_surface(X, Y, Z, rstride=1, cstride=1, alpha=0.5, linewidth=0, cmap=cm.jet,antialiased=True)
Run Code Online (Sandbox Code Playgroud)
现在,颜色变得非常漂亮,虽然外观有点鳞片,但是很好。
但是我想更改其他数据的表面颜色,存储list为:
m = [104.48, 111.73,109.93,139.95,95.05,150.49,136.96,157.75]
Run Code Online (Sandbox Code Playgroud)
我正在尝试:
norm = cls.Normalize() # Norm to map the 'm' values to [0,1]
norm.autoscale(m)
cmap = cm.ScalarMappable(norm, 'jet')
surf = ax3.plot_surface(X, Y, Z, rstride=5, cstride=5, alpha=0.5, linewidth=0, color=cmap.to_rgba(m), antialiased=True)
Run Code Online (Sandbox Code Playgroud)
但这引起了错误,因为cmap.to_rgba仅采用一维阵列。我对如何改变colormap表面的任何建议将不胜感激。
要获得正确的颜色,请使用 Z 值从颜色图中选取值:
my_col = cm.jet(Z/np.amax(Z))
Run Code Online (Sandbox Code Playgroud)
结果:
否则使用与@Moritz 相同的代码。
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
my_col = cm.jet(Z/np.amax(Z))
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors = my_col,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
plt.show()
Run Code Online (Sandbox Code Playgroud)
好吧,它看起来很糟糕,但我认为您可以适应它:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
my_col = cm.jet(np.random.rand(Z.shape[0],Z.shape[1]))
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors = my_col,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
Run Code Online (Sandbox Code Playgroud)
我不会使用jet,而是使用一些线性颜色图cubehelix。您可以使用错误的颜色图轻松欺骗眼睛(该主题上的许多帖子之一)
| 归档时间: |
|
| 查看次数: |
11726 次 |
| 最近记录: |