1
我已經創建了一個函數來繪製許多類似的等高線圖。我正在展示我正在做的最簡單的形式。在這個最小的例子中,我只想在(0,0)A,(3,0)B,(3,3)C,(0,3)D處打勾,其中A,B,C,D是標籤的蜱蟲。我可以把它放到A和B的位置上。當我引入twiny()
來創建C和D刻度時,這些縫隙可以繼續工作。蜱不會放在預期位置,並且長寬比被破壞。我嘗試從mpl_toolkits.axes_grid1
使用host_subplot
,但它沒有解決這個問題。用twiny繪製的python()不會定位刻度並破壞縱橫比
import matplotlib
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
def plot2DFS(fign,x,y,z):
fig = plt.figure(fign)
ax = fig.add_subplot(111, adjustable='box-forced', aspect='equal')
ax.set_title('Iso-surf contour')
ax.contour(x, y, z)
ax.spines['left'].set_position('center')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('center')
ax.spines['top'].set_color('none')
ax.tick_params(axis='y',which='both', right='off', left='off', labelleft='off')
ax.tick_params(axis='x',which='both', bottom='off', top='off')
ax.xaxis.set_ticks([0.0,3.0])
ax.xaxis.set_ticklabels(['A','B'])
bx = ax.twiny()
bx.tick_params(axis='x',which='both', bottom='off', top='off')
bx.xaxis.set_ticks([0.0,3.0])
bx.xaxis.set_ticklabels(['D','C'])
return
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, delta)
X, Y = np.meshgrid(x, y)
Z = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
plot2DFS(1,X,Y,Z)
plt.show()
縱橫比是正確的,但看看圖像發生了什麼。這些座標軸不在邊界上,也不在自動位置。另外,如果你不保存並且簡單地告訴python顯示()該圖,那麼該軸與邊界一起移動而與圖像縮放無關。 – Lp13
我不清楚究竟是什麼問題。對我而言,情節看起來不錯,但我不知道你在努力達到什麼目的。 – ImportanceOfBeingErnest