2014-11-02 44 views
1

我想绘制一个使用matplotlib库(迄今为止我唯一知道的)的2D矩阵。但是,函数matplotlib.pyplot.imshow(matrix)假定数据沿每个轴等距分布,而我想绘制的数据不是。我的数据如下所示:矩阵的第一列是行x = 0上的数据,第二列的数据位于行x = 1.27而不是x = 1,第三列的数据位于行x = 1.42但不是x = 2等等。如何绘制二维矩阵的数据是不是沿着x轴用Python等距分布的?

顺便说一句,数据沿着y轴等距分布。

所以,我想知道是否有反正我可以以我希望的方式绘制这个?感谢您提前给予您的时间和善意的帮助!

------ newbee编程

更新:所有的 首先,感谢大家的建议!我已经试过的方法和这里的输出: enter image description here

这是contourf绘制的图形是不是如我所料。 pcolormesh也不会给出理想的输出。 我试图绘制的是代表地下结构的地震道的数据。我希望这样的情节: enter image description here

如果有什么建议我可以做到这一点,请给我一个提示!非常感谢你!

+0

我认为你可以尝试'pcolor'。它接受'x'和'y'两个额外的数组。 – nicoguaro 2014-11-02 07:13:43

+0

如果您提供一些数据作为示例,这将非常有帮助。 – mrcl 2014-11-09 06:36:27

回答

1

我建议你使用功能pcolormesh

您只需输入1D数组x,y和2D数据中定义的间隔。下面你会找到一个简单的例子。

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

干杯

相关问题