如何用Python绘制数据在x轴不均匀分布的2D矩阵?
我正在尝试使用matplotlib库绘制一个二维矩阵(这是我目前唯一会用的库)。不过,matplotlib.pyplot.imshow(matrix)
这个函数假设数据在每个轴上是均匀分布的,但我想绘制的数据并不是这样。我的数据是这样的:矩阵的第一列数据对应于x=0这一条线,第二列的数据在x=1.27的位置,而不是x=1,第三列的数据在x=1.42的位置,而不是x=2,依此类推。
顺便说一下,数据在y轴上是均匀分布的。
所以我在想有没有办法可以按照我希望的方式来绘制这个图?谢谢你们的时间和热心帮助!
------ 编程新手
更新:
首先,感谢大家的建议!我尝试了这些方法,以下是输出结果:
这是通过contourf
绘制的图,但结果并不是我预期的那样。pcolormesh
的输出也不理想。
我想绘制的是地震波迹线的数据,这些数据代表地下结构。我希望能绘制出这样的图:
如果有任何建议可以帮助我实现这个目标,请给我一点提示!非常感谢!
2 个回答
0
3
我建议你使用 pcolormesh
这个函数。
你只需要输入在一维数组 x 和 y 中定义的区间,以及相应的二维数据。下面是一个简单的例子。
from pylab import *
x = logspace(log10(1),log10(100),11)
y = linspace(1,100,21)
data = rand(20,10)
pcolormesh(x,y,data)
show()
注意,x 和 y 多了一个点。在这种情况下,data
会填充由 x 和 y 定义的区间。否则,你也可以使用 contourf
这个函数。
祝好!