首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matplotlib yticks中的值错误

matplotlib yticks中的值错误
EN

Stack Overflow用户
提问于 2014-08-10 01:44:28
回答 2查看 2.4K关注 0票数 2

我正在尝试从pandas dataframe和matplotlib绘制以ytick为单位的错误值

高度数据:

2014-08-08 06:00:00 2609.494 2014-08-08 05:45:00 2609.550 2014-08-08 05:30:00 2609.605 2014-08-08 05:15:00 2609.658 2014-08-08 05:00:00 2609.703 2014-08-08 04:45:00 2609.741 2014-08-08 04:30:00 2609.769 2014-08-08 04:15:00 2609.787 2014-08-08 04:00:00 2609.799 2014-08-08 03:45:00 2609.802

代码:

代码语言:javascript
复制
 import pandas as pd
 df = pd.Dataframe('mydata')
 df.plot()

绘图链接:http://bayanbox.ir/id/7161086291332750314?view

我不知道必须把'2609.703‘这样的值放在yticks中,而不是在图中显示的值

EN

回答 2

Stack Overflow用户

发布于 2014-08-10 02:58:05

它没有显示不正确的刻度,它只是显示与偏移值相关的内容(请注意y轴顶部的文本)。默认情况下,当您显示的数字很大,而它们之间的差异很小时,就会发生这种情况。

控制这一点最简单的方法是使用ax.ticklabel_format(...)。在本例中,您希望指定useOffset=False

例如:

代码语言:javascript
复制
import matplotlib.pyplot as plt

data = [2609.494, 2609.55, 2609.605, 2609.658, 2609.703,
        2609.741, 2609.769, 2609.787, 2609.799, 2609.802]

fig, ax = plt.subplots()
ax.plot(data)

ax.ticklabel_format(useOffset=False)

plt.show()

或者,如果您使用的是Pandas的plot方法,则它的返回值是DataFrame对象,因此只需:

代码语言:javascript
复制
ax = df.plot()
ax.ticklabel_format(useOffset=False)
票数 3
EN

Stack Overflow用户

发布于 2014-08-10 02:47:33

问题是如何设置曲线图的Y刻度格式化程序

代码语言:javascript
复制
import pandas as pd
import datetime
import matplotlib.ticker

data = [
["2014-08-08 06:00:00",  2609.494],
["2014-08-08 05:45:00",  2609.550],
["2014-08-08 05:30:00",  2609.605],
["2014-08-08 05:15:00",  2609.658],
["2014-08-08 05:00:00",  2609.703],
["2014-08-08 04:45:00",  2609.741],
["2014-08-08 04:30:00",  2609.769],
["2014-08-08 04:15:00",  2609.787],
["2014-08-08 04:00:00",  2609.799],
["2014-08-08 03:45:00",  2609.802]]

df = pd.DataFrame([ [ datetime.datetime.strptime(d[0], "%Y-%m-%d %H:%M:%S"), d[1]] for d in data ])

p = df.plot()
p.yaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter("%.1f"))

创建:

这里的重点是最后两行,开始只是重新创建数据帧。提供给FormatStrFormatter的格式字符串是C样式的格式字符串(这里是一个十进制)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25221377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档