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