如何使用twinx仍然得到方形图

时间:2017-08-16 14:59:57

标签: python matplotlib square

如何显示双轴图,使得顶轴和右轴的方向相等。例如,以下代码将生成方形图

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_aspect('equal')
ax.plot([0,1],[0,1])

但是只要你使用twinx功能,这就会改变。

ax2 = ax.twinx()
ax2.set_ylim([0,2])
ax3 = ax.twiny()
ax3.set_xlim([0,2])

在ax2和ax3上使用set_aspect('equal')似乎迫使它成为ax的方面,但是set_aspect(0.5)似乎也没有改变任何东西。

简单地说,我希望绘图为正方形,底部和左侧轴从0到1运行,顶部和右轴从0运行到2。

您可以在两个缠绕轴之间设置方位吗?我试过堆叠轴:

ax3 = ax2.twiny()
ax3.set_aspect('equal')

我也尝试在set_aspect中使用adjust关键字:

ax.set_aspect('equal', adjustable:'box-forced')

我能得到的最接近的是:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_aspect('equal', adjustable='box-forced')
ax.plot([0,1],[0,1])
ax2=ax.twinx()
ax3 = ax2.twiny()
ax3.set_aspect(1, adjustable='box-forced')
ax2.set_ylim([0,2])
ax3.set_xlim([0,2])
ax.set_xlim([0,1])
ax.set_ylim([0,1])

产生:

enter image description here

我想删除剧情右侧和左侧的额外空间

1 个答案:

答案 0 :(得分:2)

使用两个不同的双轴来获得两组独立的轴似乎过于复杂。如果目标是创建一个方形图,在图的每一侧都有一个轴,则可以使用两个var position; $('.day').each(function() { position = false; $(this).find('.event').each(function() { var classToBeAdded = $(this).position().top === position ? "class_Name_If_True" : "class_Name_If_False"; $(this).addClass(classToBeAdded); }); position = $(_el).position().top; }); ,两个位于同一位置但具有不同的比例。然后可以将两者设置为具有相等的宽高比。

axes

enter image description here