我只想拥有左轴和下轴,而不是默认的“盒装”轴样式,即:

+------+         |
|      |         |
|      |   --->  |
|      |         |
+------+         +-------

这应该很容易,但我在文档中找不到必要的选项。

有帮助吗?

解决方案

这是从官方网站这里建议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;解决方案的灵感来自 ).

[编辑]上1.3.0版本在现在(2013-10)matplotlib包括该

实际上只是增加了这种能力,你需要为它Subversion版本。可以看到示例代码这里

我只是更新说,有一个更好的示例在线即时。还需要Subversion版本虽然还没有释放这个呢。

[编辑] Matplotlib 0.99.0 RC1刚刚发布,并且包括这种能力。

如果您不需要蜱等(例如,用于绘制插图定性),你也可以使用这个快速的解决方法:

请轴线不可见的(例如,用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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top