2017-02-21 90 views
0

我有这个四维图中的色标:我如何在颜色表用于4D积Matplotlib

import numpy as np 
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 
from matplotlib import cm 

x = np.arange(100)/ 101 
y = np.sin(x) + np.cos(x) 
X,Y = np.meshgrid(x,y) 
Z = (X**2)/(Y**2) 
A = np.sin(Z) 

fig = plt.figure() 
ax = fig.add_subplot(111,projection= '3d') 
ax.plot_surface(X,Y, Z, facecolors=cm.Oranges(A)) 
plt.show() 

输出图像

但我怎么查看colormap的规模?

回答

-1

您需要创建从颜色表

m = cm.ScalarMappable(cmap=cm.Oranges) 
m.set_array(A) 
cbar = plt.colorbar(m) 

可映射作为这个问题的答案: Matplotlib 3d plot - associate colorbar with different axis

+0

你为什么要重新发布别人的答案吗?你已经投票结束这个作为一个副本,所以这只是代表? –

+0

一般而言,它当然是重复的。但是你永远不知道问题在哪个层次上被询问,以及提问者是否直接看到问题和答案的重叠。所以对于这个问题提供量身定制的答案是有道理的(至少对我来说),可以复制/粘贴以使上述代码工作。同样对于通过搜索来到这个问题的人来说,这个答案可能更有帮助,因为它更加紧密地回答了如何获取一个彩条(而另一个问题也有一些关于旋转X和Z的组件)。 – ImportanceOfBeingErnest

+0

好吧,你已经明确地把更多的想法放在这个话题上了,然后我有了,对于指责抱歉,你是对的,这是另一个更为直接的答案。 –