什么是在gnuplot中splot pm3d map的python类比?

时间:2014-01-15 11:18:11

标签: python plot gnuplot heatmap

我有一个文件'data',格式化为gnuplot中的splot。

x1 y1 z11
x1 y2 z12
... 
x1 yn z1n
...
xn yn-1 znn-1
xn yn znn

在gnuplot中我使用

set pm3d map
splot 'data' u 1:2:3

生成我的数据热图。

如何使用python进行相同的绘制?

2 个答案:

答案 0 :(得分:1)

假设我的列x,y,z具有上面的格式。

from numpy import *
from pylab import *

Z = z.reshape(nx,ny) # makes a (Zy,Zx) matrix out of z
T = Z.T              # transposes the matrix (Zx,Zy)

imshow(T, aspect='auto', origin='lower', extent = ( x.min(), x.max(), y.min(), y.max()))
show()

这份工作。

答案 1 :(得分:0)

我刚刚开始从gnuplot转向python。以下是使用matplotlib / numpy的示例:

#!/usr/bin/env python

import matplotlib.pyplot as plt
import numpy as np

Z = np.arange(100).reshape(10,10)
plt.imshow(Z, interpolation='none')
plt.show()

您可以按照自己喜欢的方式创建Z矩阵,但它应该是一个numpy数组。命令imshowmatshow在matplotlib中大致相同,但matshow显示y轴反转且默认情况下没有插值的数据。

我建议查看options for imshow,尤其是定义x和y范围的extent

如果您想自动定义范围,

This answer也是一个不错的选择。