Python 从二维矩阵创建密度图

Python 从二维矩阵创建密度图,python,matplotlib,matrix,imshow,Python,Matplotlib,Matrix,Imshow,我有一个2d值矩阵,我想将其绘制为2d直方图 一个简化的例子: 我有一个一维初始速度数组,比如说vi=[1,2,3],对于vi中的每个值,我有一行相应的最终速度存储在二维数组中,vf=[[0.7,1.1,1.5],[1.8,2.1,2.4],[2.7,2.9,3.1]。 我希望能够制作点(vi,vf)的二维直方图,即坐标[1,0.7],[1,1.1],[1,1.5],[2,1.8],[2,2.1],[2,2.4]和[3,2.7],[3,2.9],[3,3.1] 有没有一种方法可以创建这样的配对

我有一个2d值矩阵,我想将其绘制为2d直方图

一个简化的例子: 我有一个一维初始速度数组,比如说
vi=[1,2,3]
,对于
vi
中的每个值,我有一行相应的最终速度存储在二维数组中,
vf=[[0.7,1.1,1.5],[1.8,2.1,2.4],[2.7,2.9,3.1]
。 我希望能够制作点
(vi,vf)
的二维直方图,即坐标
[1,0.7],[1,1.1],[1,1.5],[2,1.8],[2,2.1],[2,2.4]和[3,2.7],[3,2.9],[3,3.1]

有没有一种方法可以创建这样的配对

建议使用imshow或matshow,但会根据分配给每个元素的值对存储箱进行着色。我需要的是一个绘图例程,它获取一个二维矩阵,将其划分为一个网格,并根据每个网格中的计数为每个网格着色


感谢您的帮助

您似乎有一个2D空间,其中x值来自
vi
,y值来自
vf
。重复
vi
n
次(使用
n
vf
行长度)使
x
y
数组具有相同数量的元素,对应于所需的元组

代码:

将numpy导入为np
导入seaborn作为sns
从matplotlib导入pyplot作为plt
vi=np.数组([1,2,3])
vf=np.数组([[0.7,1.1,1.5],[1.8,2.1,2.4],[2.7,2.9,3.1])
x=np.repeat(vi,vf.shape[1])#按“vf”的行长重复x值`
y=vf.ravel()#转换为一维数组
sns.histplot(x=x,y=y)
plt.show()
由于数据太少,这幅图看起来很乏味。您必须使用真实数据进行测试,以确定它是否符合您的预期

print([*zip(x,y)])
(x,y)
打印为元组,即

[(1,0.7)、(1,1.1)、(1,1.5)、(2,1.8)、(2,2.1)、(2,2.4)、(3,2.7)、(3,2.9)、(3,3.1)]

您至少应该添加一个数据示例,并解释如何将其放入二维存储箱中。这些值代表什么?添加了一个示例