Power BI Python visual - 我的时间数据有误还是我的格式设置有误?

Power BI Python visual - Is my time data wrong or am I formatting it the wrong way?

我正在尝试使用 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 视觉代码:

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()