Python-无插值的强度贴图
我需要画一个强度图 我有三个从真实数据导入的x、y、z值列表:Python-无插值的强度贴图,python,matplotlib,Python,Matplotlib,我需要画一个强度图 我有三个从真实数据导入的x、y、z值列表:x\u列表、y\u列表、z\u列表。每个列表包含200个值。因此,每个x,y耦合都有一个对应的z值 在网上进行了一些搜索并提出了另一个有关StackOverflow的问题后,我尝试了以下方法: import numpy as np import pylab as plt data = np.loadtxt('data.d') x_list = data[:,0] y_list = data[:,1] z_list = data[:,
x\u列表、y\u列表、z\u列表
。每个列表包含200个值。因此,每个x,y耦合都有一个对应的z值
在网上进行了一些搜索并提出了另一个有关StackOverflow的问题后,我尝试了以下方法:
import numpy as np
import pylab as plt
data = np.loadtxt('data.d')
x_list = data[:,0]
y_list = data[:,1]
z_list = data[:,2]
from scipy.interpolate import interp2d
f = interp2d(x_list,y_list,z_list,kind="linear")
x_coords = np.arange(min(x_list),max(x_list)+1)
y_coords = np.arange(min(y_list),max(y_list)+1)
Z = f(x_coords,y_coords)
fig = plt.imshow(Z,
extent=[min(x_list),max(x_list),min(y_list),max(y_list)],
origin="lower")
fig.axes.set_autoscale_on(False)
plt.scatter(x_list,y_list,400,facecolors='none')
plt.show()
这使用插值,我不确定它是否正是我所需要的。
有没有一种方法可以用UOT插值只绘制200个z值,对应于200个x,y对,我有一个给定的值?显然,我仍然需要某种“强度关系”,如果没有解释200个z值的“强度”的方法,我不能只有散点图。据我所知,您希望在2D图形中显示xyz点,其中z值将由颜色表示。如果这是正确的,那么解决方案就像在散点图中说明
facecolors=z_list
一样简单:
data = np.random.rand(200,3)
x_list = data[:,0]
y_list = data[:,1]
z_list = data[:,2]
plt.scatter(x_list,y_list,200,facecolors=z_list)
plt.colorbar()
plt.show()
示例输出:
据我所知,您希望在二维图形中显示xyz点,其中z值将由颜色表示。如果这是正确的,那么解决方案就像在散点图中说明
facecolors=z_list
一样简单:
data = np.random.rand(200,3)
x_list = data[:,0]
y_list = data[:,1]
z_list = data[:,2]
plt.scatter(x_list,y_list,200,facecolors=z_list)
plt.colorbar()
plt.show()
示例输出:
很明显,为什么要插值,不是吗?f=interp2d(…,Z=f(…,plt.imshow)(Z..。@tommy.carstensen是的,但我不想要插值。如果这意味着使用其他东西而不是plt.imshow,那很好,但我不想要插值,你可以做
Z=np.重塑(Z_列表,(max(x_列表),max(y_列表)))
。如果可以的话,请告诉我。谢谢。@tommy.carstensen谢谢,不幸的是它不起作用。它说ValueError:新数组的总大小必须保持不变。这很明显,为什么要插值,不?f=interp2d(…,Z=f(…,plt.imshow)(Z..。@tommy.carstensen是的,但我不想要插值。如果这意味着使用其他东西而不是plt.imshow,那很好,但我不想要插值,你可以做Z=np.重塑(Z_列表,(max(x_列表),max(y_列表)))
。如果可以的话,请告诉我。谢谢。@tommy.carstensen谢谢,不幸的是它不起作用。它说ValueError:新数组的总大小必须是不变的Hanks!它起作用了,这就是我想要的。现在我只需要找出如何在facecolors=z_列表上使用某种对数刻度。这是因为我的200个值在z中_列表彼此非常接近,所以如果你简单地将你的配方应用到我的案例中,你看不到强度有多大差异谢谢!它有效,这就是我想要的。现在我只需要找出如何在FaceColor=z_列表上使用某种对数标度。这是因为我在z_列表中的200个值都非常接近eac另一方面,如果你把你的配方应用到我的案例中,你看不到强度有多大差别