python - 如何从 pyplot 浮动轴中删除框架?
问题描述
我想知道如何从floating_axes
in 中删除框架matplotlib
。我正在按照此处画廊中的setup_axes1
功能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)
return ax1, aux_ax
我已经尝试了以下常用方法的变体来删除ax1
或上的框架aux_ax
,但它们都不起作用。
# 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)
推荐阅读
- r - 为什么我会收到警告消息“在 plot.xy(xy, type, ...) 中:强制引入的 NAs”?
- postgresql - 多对多关系导致 FOREIGN KEY VIOLATION 变为可连接
- java - chrome启动时如何解决此错误
- r - 使用文本标签在 R 中创建一维图
- flutter - 运行 MyApp 之前的 Flutter 加载设置
- javascript - 雪花字符串替换javascript udf
- laravel - 如何在 Laravel (OctoberCMS) 查询中设置值增量?
- python - 如何从基于日期时间列的值增加的熊猫数据框中过滤行?
- python - 如何在 django 中发布带有空字段的数据?
- python - 划分为pandas sql