删除所有Matplotlib图的顶部和右侧轴

时间:2015-11-16 21:19:40

标签: python python-3.x matplotlib plot

我有类似于下面示例的Python代码,用于删除使用Matplotlib创建的图的顶部和右侧轴。所有绘图轴也会删除刻度线。

py.close('all')

py.figure(1)
py.plot(x1, y1)
py.grid()

py.figure(2)
py.plot(x2, y2)
py.grid()

py.figure(3)
py.plot(x3, y3)
py.grid()

ax = py.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
py.tick_params(axis='both', bottom='off', top='off', left='off', right='off')

py.show()

不幸的是,期望的效果仅适用于最后的情节图。要删除所有图形的顶部/右侧轴和刻度线,我必须在每个图形后面放置以下代码:

ax = py.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
py.tick_params(...)

是否可以使用Matplotlib一次自定义所有图形的轴?

2 个答案:

答案 0 :(得分:1)

至少当前版本的Matplotlib也通过matplotlibrc配置文件支持此功能:

axes.spines.top    : False
axes.spines.right  : False 

或者,使用rcParams

import matplotlib as mpl
mpl.rcParams["axes.spines.right"] = False
mpl.rcParams["axes.spines.top"] = False

根据您的配置,您可能还必须删除顶部/右侧轴(xtick.top : Falseytick.right : False)的刻度线。

答案 1 :(得分:-1)

当然可以!手动方式是设置matplotlib的rcParams。例如:

import matplotlib as mpl
mpl.rcParams["axes.labelsize"] = 12

您需要在绘图之前执行此操作。

请参阅docs here

话虽如此,我强烈建议您seaborn自定义您的情节。至少这将给你一个良好的开端。您可以使用rcParams随意进一步自定义它们。