如何从pyplot浮动轴中删除框架?
How to remove frame from pyplot floating axis?
我想知道如何在 matplotlib
中删除 floating_axes
的框架。 I am following the setup_axes1
function from the matplotlib
gallery here to rotate a plot.
代码贴在下面。
def setup_axes1(fig, rect):
"""
A simple one.
"""
tr = Affine2D().scale(2, 1).rotate_deg(30)
grid_helper = floating_axes.GridHelperCurveLinear(
tr, extremes=(-0.5, 3.5, 0, 4),
grid_locator1=MaxNLocator(nbins=4),
grid_locator2=MaxNLocator(nbins=4))
ax1 = floating_axes.FloatingSubplot(fig, rect, grid_helper=grid_helper)
fig.add_subplot(ax1)
aux_ax = ax1.get_aux_axes(tr)
return ax1, aux_ax
我尝试了以下常用方法的变体来删除 ax1
或 aux_ax
上的框架,但其中 none 有效。
# before adding subplot
for a in ax1.spines:
ax1.spines[a].set_visible(False)
# when adding subplot
fig.add_subplot(ax1, frameon=False)
# after adding subplot
plt.axis('off')
plt.tick_params(labelcolor='none', top=False, bottom=False, left=False, right=False)
感谢任何帮助或建议!
玩了一会儿后,我发现坐标轴存储在 ax1.axis
对象中。将 set_visible(False)
应用于它的每个元素会生成 matplotlib 文档中显示的没有轴的图形(也没有刻度)。
def setup_axes1(fig, rect):
"""
A simple one.
"""
tr = Affine2D().scale(2, 1).rotate_deg(30)
grid_helper = floating_axes.GridHelperCurveLinear(
tr, extremes=(-0.5, 3.5, 0, 4),
grid_locator1=MaxNLocator(nbins=4),
grid_locator2=MaxNLocator(nbins=4))
ax1 = floating_axes.FloatingSubplot(fig, rect, grid_helper=grid_helper)
fig.add_subplot(ax1)
aux_ax = ax1.get_aux_axes(tr)
for key in ax1.axis:
ax1.axis[key].set_visible(False)
return ax1, aux_ax
如果你想保留刻度,你可以进一步使用存储在 ax1.axis
中的对象。例如,以下替换仅删除刺,但保留刻度线和刻度线标签。
ax1.axis[key].line.set_visible(False)
我想知道如何在 matplotlib
中删除 floating_axes
的框架。 I am following the setup_axes1
function from the matplotlib
gallery here to rotate a plot.
代码贴在下面。
def setup_axes1(fig, rect):
"""
A simple one.
"""
tr = Affine2D().scale(2, 1).rotate_deg(30)
grid_helper = floating_axes.GridHelperCurveLinear(
tr, extremes=(-0.5, 3.5, 0, 4),
grid_locator1=MaxNLocator(nbins=4),
grid_locator2=MaxNLocator(nbins=4))
ax1 = floating_axes.FloatingSubplot(fig, rect, grid_helper=grid_helper)
fig.add_subplot(ax1)
aux_ax = ax1.get_aux_axes(tr)
return ax1, aux_ax
我尝试了以下常用方法的变体来删除 ax1
或 aux_ax
上的框架,但其中 none 有效。
# before adding subplot
for a in ax1.spines:
ax1.spines[a].set_visible(False)
# when adding subplot
fig.add_subplot(ax1, frameon=False)
# after adding subplot
plt.axis('off')
plt.tick_params(labelcolor='none', top=False, bottom=False, left=False, right=False)
感谢任何帮助或建议!
玩了一会儿后,我发现坐标轴存储在 ax1.axis
对象中。将 set_visible(False)
应用于它的每个元素会生成 matplotlib 文档中显示的没有轴的图形(也没有刻度)。
def setup_axes1(fig, rect):
"""
A simple one.
"""
tr = Affine2D().scale(2, 1).rotate_deg(30)
grid_helper = floating_axes.GridHelperCurveLinear(
tr, extremes=(-0.5, 3.5, 0, 4),
grid_locator1=MaxNLocator(nbins=4),
grid_locator2=MaxNLocator(nbins=4))
ax1 = floating_axes.FloatingSubplot(fig, rect, grid_helper=grid_helper)
fig.add_subplot(ax1)
aux_ax = ax1.get_aux_axes(tr)
for key in ax1.axis:
ax1.axis[key].set_visible(False)
return ax1, aux_ax
如果你想保留刻度,你可以进一步使用存储在 ax1.axis
中的对象。例如,以下替换仅删除刺,但保留刻度线和刻度线标签。
ax1.axis[key].line.set_visible(False)