题
我只想拥有左轴和下轴,而不是默认的“盒装”轴样式,即:
+------+ |
| | |
| | ---> |
| | |
+------+ +-------
这应该很容易,但我在文档中找不到必要的选项。
解决方案
这是从官方网站这里建议Matplotlib 3溶液:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
ax = plt.subplot(111)
ax.plot(x, y)
# Hide the right and top spines
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# Only show ticks on the left and bottom spines
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
plt.show()
其他提示
或者,这个
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;解决方案的灵感来自 这).
如果您不需要蜱等(例如,用于绘制插图定性),你也可以使用这个快速的解决方法:
请轴线不可见的(例如,用plt.gca().axison = False
),然后用手动plt.arrow
绘制它们。
(这更是一个扩展的评论,除了全面的答案在这里.)
注意,我们可以隐藏这三个因素彼此独立的:
隐藏的边界(又名"脊柱"):
ax.set_frame_on(False)
或ax.spines['top'].set_visible(False)
隐藏的壁虱:
ax.tick_params(top=False)
隐藏的标签:
ax.tick_params(labeltop=False)
库Seaborn已这个内置有功能despine()。
只需添加:
import seaborn as sns
现在创建您的图表。和在结尾处加上:
sns.despine()
如果你看一些它消除了顶部和右侧脊椎,并保持底部和机身左侧的功能的默认参数值:
sns.despine(top=True, right=True, left=False, bottom=False)
这里检查出进一步的文档: https://seaborn.pydata.org/generated/seaborn.despine.html
如果您需要从所有的地块删除它,你可以删除样式设置(样式表或rcParams)刺。 E.g:
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
不隶属于 StackOverflow