Python 我可以在rcParams中设置脊椎和蜱虫吗?
我倾向于在Matplotlib(v1.3.1)绘图中使用以下轴选项:Python 我可以在rcParams中设置脊椎和蜱虫吗?,python,matplotlib,Python,Matplotlib,我倾向于在Matplotlib(v1.3.1)绘图中使用以下轴选项: 在抓取当前轴后,这可以正常工作,但我想知道是否可以通过在rcParams?中设置来实现所有这些默认行为,正如ImportanceOfBeingErnest的评论中提到的,这现在是可能的: plt.rcParams['axes.spines.top'] = False plt.rcParams['axes.spines.bottom'] = False plt.rcParams['axes.spines.left'] = Fal
在抓取当前轴后,这可以正常工作,但我想知道是否可以通过在
rcParams
?中设置来实现所有这些默认行为,正如ImportanceOfBeingErnest的评论中提到的,这现在是可能的:
plt.rcParams['axes.spines.top'] = False
plt.rcParams['axes.spines.bottom'] = False
plt.rcParams['axes.spines.left'] = False
plt.rcParams['axes.spines.right'] = False
对于多个rcParams
使用dict
:
plt.rcParams.update({'axes.spines.top': False, 'axes.spines.right': False})
我也遇到了同样的问题,在回答这个问题的过程中,我发现了以下几点: Matplotlib 1.3.1不将任何这些输入识别为rcParams:
>>> 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.tick_参数(top=“off”,right=“off”)删除记号。我在rcParams
中未找到任何相关内容
我还测试了matplotlib 2.2.3。在那里,axes.spine.*
在顶部和底部没有标记,没有指定任何其他参数。matplotlibrc中的条目删除整个轴,包括记号,或者rcParams
字典中新的ytick.right
,xtick.top
条目默认为False
不幸的是,如果右侧的最后一条网格线恰好位于边缘,则仍然会隐藏该网格线,即使在相同的情况下显示顶部网格线
==>换句话说:
- 版本1.3.1没有全局开关,需要应用
ax.spines[“top”]。设置可见(False)
- 1.5.1可以使用Dan建议的方法(将
和axes.spine.top
设置为axes.spine.right
)全局删除线条,但不删除勾号,勾号仍然需要False
命令ax.tick_params()
- 更高的版本(不确定是哪个版本引入的)也有
和ytick.right
设置,可以设置为xtick.top
或True
,也可以忽略这些边缘上的记号False
>>> 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.'
In[1]: from matplotlib import pyplot as plt
In[2]: plt.matplotlib.__version__
Out[2]: '1.5.1'
In[3]: plt.rcParams
Out[3]:
RcParams({u'agg.path.chunksize': 0,
[...]
u'axes.spines.bottom': True,
u'axes.spines.left': True,
u'axes.spines.right': False,
u'axes.spines.top': False,
[...]
In[4]: x = np.linspace(0, 6)
...: y = np.sin(x)
...: plt.close('all')
...: plt.plot(x,y,'k-')