我有一个文件'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进行相同的绘制?
答案 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数组。命令imshow
和matshow
在matplotlib中大致相同,但matshow
显示y轴反转且默认情况下没有插值的数据。
我建议查看options for imshow
,尤其是定义x和y范围的extent
。
This answer也是一个不错的选择。