- 此问题在此处已有答案**:
How to do colored 2D grid with 3 arrays(1个答案)
三年前关闭了。
我有一个x值数组,名为"年龄",一个y值数组,名为"体重",还有一个z值数组,名为"卡路里",我想画出x,y,强度,基本上卡路里消耗量取决于年龄和体重。
我可以在matlab中使用imagesc执行此操作,但我需要Python方面的帮助
age = [5,5,5,5,5,10,10,10,10,10....40,40,40,40,40],
weight = [40,50,55,60,65,80,85,90,95,100....170,190,210,250,300]
calories =[ 500,550,560,600,650,1000,1200,1300,1400,1500...2000,2300,2500,3000,5000]
我试过plt.pcolormesh
和plt.imshow
,但是imshow都不允许我输入3个变量。
我也尝试过使用x,y数组创建meshgrid,但我没有得到正确的强度或轴
x=np.unique(age)
y=np.unique(weight)
X,Y = np.meshgrid(x,y)
Z=calories.reshape(len(y),len(x))
plt.pcolormesh(X,Y,Z)
plt.show()
以及
plt.imshow(age,weight,calories)
我希望看到一个图像图,其中年龄在x轴上,体重在y轴上,颜色条从浅到深
3条答案
按热度按时间yi0zb3m41#
这是很奇特的数据,但是试试这个:
r6l8ljro2#
您使用的图取决于数据的形状以及
calories
数组是否同时是age
和weight
的函数。如果calories
是2D的,则应使用plt.contourf()
、plt.imshow()
或plt.pcolormesh()
。如果所有数组都具有相同的形状,则可能需要考虑使用上述afb散点图。例如,使用数据的子集,您可以获得以下信息:
68bkxrlz3#
对于
imshow()
,水平和垂直坐标以及rgb颜色代码被组合到一个数组中--参数X
(参见文档https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.imshow.html中的描述)或者,如果您的数据集没有覆盖网格中的每个点,您可以考虑散点图,其中每个标记的大小和/或颜色与calories
成比例。