此问题已在此处有答案:
How can I remove the top and right axis in matplotlib?(10个答案)
3天前关闭。
这篇文章是编辑并提交审查3天前.
我有类似于下面示例的Python代码来删除用Matplotlib创建的图的顶部和右侧轴。所有打印轴的刻度线也将被删除。
import matplotlib.pyplot as plt
plt.close('all')
plt.figure(1)
plt.plot(x1, y1)
plt.grid()
plt.figure(2)
plt.plot(x2, y2)
plt.grid()
plt.figure(3)
plt.plot(x3, y3)
plt.grid()
ax = plt.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.tick_params(axis='both', bottom='off', top='off', left='off', right='off')
plt.show()
不幸的是,所需的效果只适用于最后一个绘图图。要删除所有图的顶部/右侧轴和刻度线,我必须在每个图之后放置以下代码:
ax = py.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
py.tick_params(...)
是否可以使用Matplotlib一次性自定义所有图形的轴?我不想只删除一个图形的轴,我想删除所有图形的顶部和右侧轴,而不必多次写入.set_visible()
。
2条答案
按热度按时间xqnpmsa81#
至少当前版本的Matplotlib也通过
matplotlibrc
配置文件支持这一点:或者,使用
rcParams
:根据您的配置,您可能还必须删除顶部/右侧轴(
xtick.top : False
,ytick.right : False
)处的刻度。pwuypxnk2#
你当然可以!手动方式是通过设置matplotlib的
rcParams
。例如:您需要在绘图之前执行此操作。
参见docs here。
话虽如此,我强烈推荐seaborn来定制你的图。至少这会给予你一个良好的开端。您可以使用
rcParams
进一步自定义它们。