2011-06-12 28 views
20

二維像素的情節,我從一些計算得到了以下數據:請與matplotlib

x, y, temp 

其中x和y的尺寸10×10的2D框中點的座標。間距等於0.1。因此,有10000個的不同點,生成的文件是這樣的:

0.0 0.0 5.6 
0.1 0.0 3.2 
0.2 0.0 4.1 
... 
9.9 9.9 2.1 

我想準備用matplotlib二維繪圖的一種,具有100×100像素,每個像素達到顏色(彩虹的顏色從紅會紫色,從第三列的最小值到最大值)根據第三列的值,並從該文件中讀取數據。我想知道matplotlib的最佳方法是什麼?

回答

27

基於它看起來像x,y,temp三元組的排列方式(列出在行中),您可以重新塑造「temp」列。

E.g.

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.cm as cm 

x,y,temp = np.loadtxt('data.txt').T #Transposed for easier unpacking 
nrows, ncols = 100, 100 
grid = temp.reshape((nrows, ncols)) 

plt.imshow(grid, extent=(x.min(), x.max(), y.max(), y.min()), 
      interpolation='nearest', cmap=cm.gist_rainbow) 
plt.show() 

hsv是 「彩虹」 顏色表你指的。 編輯:你可能實際上想要matplotlib.cm.gist_rainbowmatplotlib.cm.hsv在底部回到紅色。請參閱:https://matplotlib.org/users/colormaps.html獲取色彩地圖列表。

如果你的x,y,temp三胞胎實際上並沒有排序,那麼你需要修正你的分數。我在前面的問題中給出了my answer的一個例子。

enter image description here

+0

numpy的loadtxt似乎只有一個輸出:http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.loadtxt.html – 2016-06-16 17:27:28

+0

喜歡那個'CMAP = cm.gist_rainbow'彩色地圖!感謝解決方案 – alisa 2017-10-08 01:50:26

+0

-1促進彩虹色彩表。查看[彩虹色彩地圖(仍然)被認爲是有害的](https://pdfs.semanticscholar.org/ee79/2edccb2c88e927c81285344d2d88babfb86f.pdf)和[Peter Kovesi的工作](http://peterkovesi.com/projects/colourmaps/)。 – 2018-01-24 14:43:36