matplotlib 如何在python中绘制x,y,z强度图?[duplicate]

jfgube3f  于 2023-01-13  发布在  Python
关注(0)|答案(3)|浏览(226)
    • 此问题在此处已有答案**:

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.pcolormeshplt.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轴上,颜色条从浅到深

yi0zb3m4

yi0zb3m41#

这是很奇特的数据,但是试试这个:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mclr

nx = 38; ny = 18

x = np.linspace(0,nx-1,nx)
y = np.linspace(0,ny-1,ny)

X,Y = np.meshgrid(x, y, indexing='ij')
Z =np.sqrt(X*X + Y*Y) # set a fancy Z function

fig = plt.figure(figsize=(22,11)) 
ax1 = fig.add_subplot(121)
ax1.pcolormesh(X, Y, Z, edgecolors='w',cmap="plasma")
ax1.set_aspect('equal')

plt.show()

r6l8ljro

r6l8ljro2#

您使用的图取决于数据的形状以及calories数组是否同时是ageweight的函数。如果calories是2D的,则应使用plt.contourf()plt.imshow()plt.pcolormesh()。如果所有数组都具有相同的形状,则可能需要考虑使用上述afb散点图。
例如,使用数据的子集,您可以获得以下信息:

import matplotlib.pyplot as plt
import numpy as np

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]

fig = plt.figure(figsize=(6,6))
ax = plt.subplot(111)

sc = plt.scatter(age,weight, s = 200, c=calories, cmap=plt.cm.jet)

cbar = fig.colorbar(sc, orientation='horizontal')    

plt.show()

68bkxrlz

68bkxrlz3#

对于imshow(),水平和垂直坐标以及rgb颜色代码被组合到一个数组中--参数X(参见文档https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.imshow.html中的描述)或者,如果您的数据集没有覆盖网格中的每个点,您可以考虑散点图,其中每个标记的大小和/或颜色与calories成比例。

相关问题