我想用圆形帽子来打勾。我尝试了以下方法,但它不起作用。
import matplotlib.pyplot as plt
# better tick visiblity to check the capstyle
plt.rcParams.update({
'figure.dpi': 150,
u'xtick.major.size': 5.0,
u'xtick.major.width': 2,
})
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4])
tl = ax.xaxis.get_ticklines()
for i in tl:
i.set_solid_capstyle('round')
plt.show()
答案 0 :(得分:2)
所以,这不起作用的原因是刻度线是用单点线实现的,刻度线绘制为标记。
In [127]: [i.get_linestyle() for i in ax.xaxis.get_ticklines()]
Out[127]:
['None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None']
和
In [128]: [i.get_marker() for i in ax.xaxis.get_ticklines()]
Out[128]: [2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3]
请参阅docs了解整数之间的映射 - >形状,这是交替'滴答'和'滴答'。
这可以让你做半生可爱的事情,比如
[i.set_marker('o') for i in ax.xaxis.get_ticklines()]
如果你使用它,当上游中断时,这将是你的问题
为了得到你想要的东西,你可以做到很好地进入胆量并在刻度线上设置capstyle:
for i in ax.xaxis.get_ticklines():
# reach in and poke the guts
# USE AT YOUR OWN RISK
i._marker._capstyle = 'round'
# this is not officially supported
请注意,这不会使用1,但是2个私有属性和 会被明年推出的traitlet重构(针对v2.1)打破。这也将被重新设置为'butt'
_recache
次调用的transition
的硬编码值(当我被调用时,我不记得我的头顶。)
我认为你真的不想这样做:
因为它绕着蜱的两端,而不仅仅是指向的一侧(但是可能是一个较小的蜱尺寸,圆形的“外侧”将被脊柱隐藏)