pandas / matplotlib:更改刻度标签格式(强制普通不科学)

时间:2015-04-01 05:14:46

标签: python pandas matplotlib

我有一个pandas dataframe,其中包含以下格式的两列:

df.head()
                            column1  column2
time                                                                        
1900-01-01 12:30:05.089883  19042.5  19042.8615   
1900-01-01 12:30:05.210055  19042.5  19042.8615   
1900-01-01 12:30:05.290165  19042.5  19042.8615   
1900-01-01 12:30:05.449856  19042.5  19042.8615   

我正在同一matplotlib axes subplot

上绘制列
def plot(df):
    ax = df.plot(y='column1', figsize=(20, 8))
    df.plot(y='column2', ax=ax)

    # this doesn't make a difference
    ax.ticklabel_format(style='plain', axis='y')    

    mpl.pyplot.show()

plot(df)

pandas plot

我想以plain格式打印y轴 - 如何强制它停止使用scientific

也就是说,y轴从0变为6,并且还有一个标签1.9037e4。我希望从1903719043

我已经尝试过这个,但它没有什么区别:

ax.ticklabel_format(style='plain', axis='y') 

1 个答案:

答案 0 :(得分:2)

来自docs

  

为了减少滴答标记重叠的几率   标记为固定偏移的增量。例如:

     

ax.plot(np.arange(2000, 2010), range(10))

     

的刻度为0-9,偏移量为+ 2e3。如果不希望这样   关闭默认格式化程序上偏移量的使用:

     

ax.get_xaxis().get_major_formatter().set_useOffset(False)

     

设置rcParam axes.formatter.useoffset=False将其关闭   全局,或设置不同的格式化程序。

所以,你可以写

 ax.get_yaxis().get_major_formatter().set_useOffset(False)

关闭偏移量。