微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Power BI Python可视化-我的时间数据有误还是格式化方式有误?

如何解决Power BI Python可视化-我的时间数据有误还是格式化方式有误?

我正在尝试使用Python可视化图制作散点图,因为对于日期或时间数据,此功能并非开箱即用。 R是不可选项,因为不可能在Web服务上查看这些视觉效果。市场上提供的一组视觉效果无法达到预期的效果

这是我第一次尝试创建Python视觉对象和具有时间值的第一个视觉对象。

我已阅读有关Python的Power BI文档。我阅读了有关Pandas和Matplotlib的文档。

但是,我无法弄清楚为什么我的图形在y轴上显示00:00。所以我开始质疑我的数据。

我的数据最初是在Excel中生成的,然后导入到Power BI中。这里是一个示例:

Day_of_the_week,Time
Monday,1899-12-30 08:15:00
Monday,1899-12-30 14:15:00
Tuesday,1899-12-30 16:15:00
Wednesday,1899-12-30 08:15:00
Thursday,1899-12-30 11:30:00
Thursday,1899-12-30 14:15:00
Thursday,1899-12-30 16:15:00
Friday,1899-12-30 11:30:00

Power BI中的结果:

Python Graph in Power BI

视觉的Python代码

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

plt.scatter(dataset.Day_of_the_week,dataset.Time)
date_format = mdates.DateFormatter('%H:%M')
plt.gca().yaxis.set_major_formatter(date_format)

plt.show()

关于我在做什么错的任何提示吗?

解决方法

您的Time列未被识别为日期时间对象。您可以像这样将列转换为日期时间:

dataset.Time = pd.to_datetime(dataset.Time,format='%Y-%m-%d %H:%M:%S')

完整代码:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
from io import StringIO

d='''Day_of_the_week,Time
Monday,1899-12-30 08:15:00
Monday,1899-12-30 14:15:00
Tuesday,1899-12-30 16:15:00
Wednesday,1899-12-30 08:15:00
Thursday,1899-12-30 11:30:00
Thursday,1899-12-30 14:15:00
Thursday,1899-12-30 16:15:00
Friday,1899-12-30 11:30:00'''
dataset = pd.read_csv(StringIO(d),header=0)

dataset.Time = pd.to_datetime(dataset.Time,format='%Y-%m-%d %H:%M:%S')

plt.figure()
plt.scatter(dataset.Day_of_the_week,dataset.Time)
date_format = mdates.DateFormatter('%H:%M')
plt.gca().yaxis.set_major_formatter(date_format)
plt.tight_layout()
plt.show()

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。