如何从pyplot轴的相对边缘删除轴和刻度

时间:2021-03-27 12:37:44

标签: python matplotlib

我试图让我的情节看起来像这样: Plot with axis lines on bottom/left, and ticks only on those bottom/left axis lines

即:

  • 绘图轴左/下边缘的实线,但不是封闭的框
  • 仅在轴上打勾,而不在对边上打勾。

This question and solution 提供两条信息:

  1. 那些线被称为“刺”
  2. 它们可以通过 axes.spines.<xxx>
  3. 单独停用

然而,这对我来说似乎不起作用:

>>> plt.matplotlib.__version__
'1.3.1'
>>> plt.rcParams['axes.spines.top'] = False
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\<username>\Software\WinPython-64bit-2.7.6.4\python-2.7.6.amd64\lib\site-packages\matplotlib\__init__.py", line 811, in __setitem__
    See rcParams.keys() for a list of valid parameters.' % (key,))
KeyError: 'axes.spines.top is not a valid rc parameter.See rcParams.keys() for a list of valid parameters.' 

事后去除刺似乎有效:

>>> ax.spines["top"].set_visible(False) 
>>> ax.spines["right"].set_visible(False)

所以到目前为止我取得的最好成绩是: same plot, but there are tick marks on all four edges 这仍然具有所有刻度线,并且在右边缘缺少网格线(但有趣的是不在顶部)

我怎样才能在一侧也有蜱虫?

我见过一侧有刻度的 pyplot 图(example,来自 here),但一直无法弄清楚如何做到这一点。到目前为止,我发现的所有刻度设置仅指定宽度、长度、位置(沿轴、输入/输出),或者将它们全部打开/关闭。

理想情况下,我想通过创建修改后的 matplotlibrc 来实现这一点,这样我就可以加载它并让所有内容都使用相同的样式。

我仍在使用 matplotlib 1.3.1(不是我的选择,但现在很难改变)。如果必须的话,我可以保存数据并以最新版本对其进行处理,但我更愿意避免这种情况。

0 个答案:

没有答案