2014-10-06 75 views
1

我想繪製一個恆定的字段,但它不是很漂亮...... 它的值是零,我想要一個在-1和1之間的顏色條! 我嘗試用:Python - Matplotlib,繪製常量字段

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

plt.rcParams['text.usetex']=True 
plt.rcParams['text.latex.unicode']=True 

Lx=80. 
Ly=120. 
x0 = 30. 
y0 = Ly/2. 

YA, XA = np.mgrid[0:Ly, 0:Lx] 

Order0 = 0*np.ones((YA.shape[0], YA.shape[1])) 

plt.imshow(Order0,aspect='auto',cmap=plt.cm.hot,origin="lower") 
plt.colorbar() 
plt.show() 


fig, ax = plt.subplots() 
cax = ax.imshow(Order0, interpolation='nearest', cmap=cm.hot) 
ax.set_title(r"\ test",fontsize=20) 
plt.axis('off') 

cbar = fig.colorbar(cax, ticks=[-1, -0.5, 0, 0.5, 1]) 
cbar.ax.set_yticklabels(['-1', '-0.5', '0','0.5' ' 1'])# vertically oriented colorbar 
plt.show() 

enter image description here

我想獲得類似這樣的形象,以尊重其他結果:

+0

我知道它的特殊繪製恆定場,但是這跟訂單顯示的結果,在一系列的...;) – user3601754 2014-10-06 14:47:46

回答

1

要改線,我懷疑:

plt.imshow(Order0,aspect='auto',cmap=plt.cm.hot,origin="lower") 

添加vmin和vmax:

plt.imshow(Order0,aspect='auto',cmap=plt.cm.hot,origin="lower", vmin=-1, vmax=1) 

,並提供:

enter image description here

+0

感謝它就是我想要的東西。但爲了尊重我的作品的「框架」,我想刪除軸的網格,因此我添加了:「plt.axis('off')」,我想尊重只給出1的相同顏色條。 ,0.5,0,-0.5和-1,我試着用「cbar = fig.colorbar(cax,ticks = [ - 1,-0.5,0,0.5,1]) cbar.ax.set_yticklabels([' - 1','-0.5','0','0.5''1'])「但是在這種情況下不工作:/ – user3601754 2014-10-06 15:34:19

+0

我添加圖片以查看我說的內容 – user3601754 2014-10-06 15:35:15

+0

請注意,您有兩張圖,兩個plt.show()。在第一個之前,你有*不*添加plt.axis('off')或cbar行......如果您將它們添加到FIRST情節時仍然發現錯誤,則可以更新問題以包含此附加評論並放置更新後的代碼,以便我們仔細查看。 – Jblasco 2014-10-06 15:48:45