bad*_*nds 2 python matplotlib axis-labels
我是matlpotlib的新手,我发现滴滴定位器和标签令人困惑,所以请耐心等待.我发誓我已经谷歌搜索了几个小时.
我有一个像这样的数据帧'框架'(相关列):
dayofweek sla
weekday
Mon 1 0.889734
Tue 2 0.895131
Wed 3 0.879747
Thu 4 0.935000
Fri 5 0.967742
Sat 6 0.852941
Sun 7 1.000000
Run Code Online (Sandbox Code Playgroud)
其中工作日名称是索引,工作日编号是列.此框架中没有日期时间对象.
我把它变成了一个plt.figure
fig=plt.figure(figsize=(7,5))
ax=plt.subplot(111)
Run Code Online (Sandbox Code Playgroud)
我需要将我的x轴作为数值,因为我想稍后添加一个散点图,这对于字符串值是不可能的.
x_=frame.dayofweek.values
anbar=ax.bar(x_,y_an,width=0.8,color=an_c,label='angekommen')
Run Code Online (Sandbox Code Playgroud)
所以基本上我希望我的xticks成为'dayofweek'列,它们的标签是相应的索引.现在,如果我手动set_xticklabels
ax.set_xticklabels(frame.index)
Run Code Online (Sandbox Code Playgroud)
标签从轴上的位置0开始.
我可以通过重新排列标签列表来解决这个问题,但是应该有一种"正确"的方式来使用Locators或Formatter,但是(见上文)这对我来说非常困惑.有人能指出我如何使标签与他们的索引相对应吗?
直接的解决方案不仅要设置xticklabels,还要设置刻度本身:
ax.set_xticks(frame.dayofweek.values)
ax.set_xticklabels(frame.index)
Run Code Online (Sandbox Code Playgroud)
使用FixedLocator和FixedFormatter可以实现同样的目的,
ax.xaxis.set_major_locator(matplotlib.ticker.FixedLocator(frame.dayofweek.values))
ax.xaxis.set_major_formatter(matplotlib.ticker.FixedFormatter(frame.index))
Run Code Online (Sandbox Code Playgroud)
但对于这个简单的任务来说似乎没必要
| 归档时间: |
|
| 查看次数: |
3837 次 |
| 最近记录: |