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