而不是默认的“盒装”轴样式,我想只有左轴和底部轴,即:
+------+ |
| | |
| | ---> |
| | |
+------+ +-------
这应该很容易,但我在文档中找不到必要的选项。
而不是默认的“盒装”轴样式,我想只有左轴和底部轴,即:
+------+ |
| | |
| | ---> |
| | |
+------+ +-------
这应该很容易,但我在文档中找不到必要的选项。
当前回答
另一种非全局方式的方法是使用matplotlib.pyplot。Rc_context上下文管理器,如下所示:
with plt.rc_context({
"axes.spines.right": False,
"axes.spines.top": False,
}):
fig, ax = plt.subplots()
...
其他回答
如果你需要从所有的图中删除它,你可以在样式设置(样式表或rcParams)中删除脊。例句:
import matplotlib as mpl
mpl.rcParams['axes.spines.right'] = False
mpl.rcParams['axes.spines.top'] = False
如果你想去除所有刺:
mpl.rcParams['axes.spines.left'] = False
mpl.rcParams['axes.spines.right'] = False
mpl.rcParams['axes.spines.top'] = False
mpl.rcParams['axes.spines.bottom'] = False
另外,这
def simpleaxis(ax):
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.get_xaxis().tick_bottom()
ax.get_yaxis().tick_left()
似乎在一个轴上实现了同样的效果,而不会失去旋转标签的支持。
(Matplotlib 1.0.1;受此启发的解决方案)。
如果你想经常应用它,你也可以创建一个样式表,如这里所述,并使用这些设置:
axes.spines.left: True
axes.spines.bottom: True
axes.spines.top: False
axes.spines.right: False
如果你不需要刻度之类的(例如绘制定性插图),你也可以使用这个快速的解决方案:
使轴不可见(例如使用plt.gca())。axison = False),然后用plot .arrow手动绘制它们。
(除了这里的全面回答之外,这更像是一个扩展的评论。)
注意,我们可以分别隐藏这三个元素:
隐藏边界(又名“spine”):ax.set_frame_on(False)或ax.spines['top'].set_visible(False) 隐藏刻度:ax.tick_params(top=False) 隐藏标签:ax.tick_params(labeltop=False)