序言:我看到these,但我不能回答弄清楚怎麼做的情節。另外,我是新的python和matplotlib。從3D數據到顏色表
我具有形式
X Y Z
0.05 1 z
0.10 1 z
... ... ...
0.95 1 z
0.05 2 z
... ... ...
... ... ...
0.95 10 z
其中z在[-0.02:0.5]的數據文件爲每個。這些結果在190(x,y,z)點。
我採集數據以這種方式
data_file = open('tau.txt', 'r')
buffer = data_file.read()
data_file.close()
data = [map(float, row.split('\t')) for row
buffer.strip().split("\n")]
爲紐帶建議,我將它們轉換成電網
mu = []
alpha = []
tau = []
for elements in data:
mu.append(elements[0])
alpha.append(elements[1])
tau.append(elements[2])
x_data = np.asarray(mu)
y_data = np.asarray(alpha)
z_data = np.asarray(tau)
xi = np.linspace(0.05,0.95,19)
yi = np.linspace(1,10,10)
ar = griddata(x_data,y_data,z_data,xi,yi,interp='nn')
然後我做的情節:謹以此使每個( x,y)座標有一個以座標爲中心的正方形,顏色條顯示z值。
cmap = mpl.colors.LinearSegmentedColormap.from_list('my_colormap',
['white','grey','black'],256)
img = plt.imshow(ar,interpolation='nearest',cmap =
cmap,origin='lower')
plt.colorbar(img,cmap=cmap)
首先,我想colourbar是情節本身的高度相同。我無法理解如何避免這種垃圾。
而且,如果你看一下文件,你立即看到範圍是不對的:X必須在[0.05 0.95]和y [1:10]。 y簡單地移位1(白線,所有的z = 0應該是對於y = 1而不是y = 0),而x假定值我不明白。
我這是必須注意的是,除了這些,情節是正確的,無論是在z值和趨勢。
我該如何解決我的問題?
@ImportanceOfBeingErnest是這個問題的一個重複,請問我可以鏈接到答案? –
在閱讀兩個重複的問題之後,究竟有什麼尚不清楚? – ImportanceOfBeingErnest
對不起,我先評論。當你回答我的評論時,我看到了答案的鏈接。現在一切都很好! –