Python-无插值的强度贴图

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、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[:,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另一方面,如果你把你的配方应用到我的案例中,你看不到强度有多大差别