此问题已在此处有答案:
Plotting time on the independent axis(5个答案)
5天前关闭。
这篇文章是编辑并提交审查3天前.
我想创建一个散点图的值采取在不同的日子和绘图只根据他们的时间一天。
然而,似乎时间序列只能方便地绘制,包括日期组件。类似的question也被问过,但接受的答案和其他任何答案都没有显示出仅使用日期对象的时间部分**的解决方案。
所以问题是:我如何创建一个散点图,我的数据,只使用时间组件,但删除日期组件的日期时间?
下面的示例可以工作,但不具有所需的输出,因为值是按天和时间绘制的:
# Plotting the data
fig, ax = plt.subplots()
ax.scatter(x = df.Datetime, y = df.Temperature)
ax.xaxis.set_major_formatter(mpl.dates.DateFormatter("%H:%M"))
plt.xticks(rotation = 45)
plt.show()
相反,它只使用时间部分,但不绘图,因为matplotlib不接受datetime.time
# Plotting the data
fig, ax = plt.subplots()
ax.scatter(x = df.Datetime.dt.time, y = df.Temperature)
ax.xaxis.set_major_formatter(mpl.dates.DateFormatter("%H:%M"))
plt.xticks(rotation = 45)
plt.show()
设置
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
# creating fake data
# not this is actually read via pd.read_excel from an ods file
x = ['2023-06-12 09:12:00',
'2023-06-12 10:15:00',
'2023-06-13 09:40:00',
'2023-06-13 11:20:00',
'2023-06-14 09:36:00',
'2023-06-14 10:51:00']
x = [pd.Timestamp.fromisoformat(date) for date in x]
y = [36, 25, 29, 31, 34, 27]
df = pd.DataFrame(data = {'Datetime': x, 'Temperature': y})
1条答案
按热度按时间avkwfej41#
一个简单的方法是将所有日期转换为同一天。
df
现在你可以把它画出来
或者,使用您的设置