Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有指定坐标点的热图_Python_Image_Plot_Coordinates_Heatmap - Fatal编程技术网

Python 具有指定坐标点的热图

Python 具有指定坐标点的热图,python,image,plot,coordinates,heatmap,Python,Image,Plot,Coordinates,Heatmap,我有一个带有值和相应坐标的矩阵,我想画一个给定坐标下这个矩阵的热图。一个有效的例子是 import numpy as np import matplotlib.pyplot as plt intensities=[[1,3,5],[2,4,6]] coords=[[[0,0],[1,0],[2,4]],[[2,1],[3,5],[6,1]]] plt.pcolormesh(intensities) 但是,我希望这些点被绘制在coords给出的坐标上。不幸的是,坐标不能仅表示为两个数组 我

我有一个带有值和相应坐标的矩阵,我想画一个给定坐标下这个矩阵的热图。一个有效的例子是

import numpy as np
import matplotlib.pyplot as plt

intensities=[[1,3,5],[2,4,6]]

coords=[[[0,0],[1,0],[2,4]],[[2,1],[3,5],[6,1]]]

plt.pcolormesh(intensities)
但是,我希望这些点被绘制在coords给出的坐标上。不幸的是,坐标不能仅表示为两个数组

我可以看出,pcolormesh和类似工具可能是错误的工具,因为它们填充了矩形。我不关心用于填充空间的多边形的特定形状,因为我将有足够多的点使效果不可见

问题源于试图对图像进行后处理。绘制了一个与非正交参考框架相对应的图形,我想看看如果参考框架是正交的,它会是什么样子。

coords[A,b,:]
给出了与所有有效的
A
b
强度[A,b]相关的x,y坐标。因此,我们可以用

x = coords[..., 0].ravel()
y = coords[..., 1].ravel()
相应的颜色将由

c = intensities.ravel()

s=200
控制点的大小。我使用了一个较大的值,使示例中的几个点更加明显。如果你有很多点,你当然会想要一个较小的数字。

coords[a,b,:]
为所有有效的
a
b
给出了与
强度[a,b]
相关的x,y坐标。因此,我们可以用

x = coords[..., 0].ravel()
y = coords[..., 1].ravel()
相应的颜色将由

c = intensities.ravel()


s=200
控制点的大小。我使用了一个较大的值,使示例中的几个点更加明显。如果你有很多分数,你当然会想要一个较小的数字。

强度如何对应于坐标。您是否打算将
coords
定义为长度为2的4个子列表,如
coords=[[0,0],[1,0],[2,1],[3,5]
?(在OP中,前两个子列表周围似乎有太多括号…)抱歉,我现在更正了。这意味着coords[a,b,:]给出了强度[a,b]的x,y坐标。如果有必要,我还可以找到其他方法来编写这些代码。
强度
如何对应于
坐标
。您是否打算将
coords
定义为长度为2的4个子列表,如
coords=[[0,0],[1,0],[2,1],[3,5]
?(在OP中,前两个子列表周围似乎有太多括号…)抱歉,我现在更正了。这意味着coords[a,b,:]给出了强度[a,b]的x,y坐标。如果有必要的话,我也可以找到其他的方法来写这些。这就回答了,如果我在我的实际图中把点画得足够小,它就会精确地显示出我想要的。这就回答了,如果我在我的实际图中把点画得足够小,它就会精确地显示出我想要的东西。