1 回答
TA贡献1794条经验 获得超7个赞
试试这个方法:
使用日期定位器将 x 轴格式化为您需要的日期范围。日期定位器可用于定义以秒、分钟……为单位的时间间隔:
SecondLocator:定位秒
MinuteLocator:定位分钟
HourLocator:定位时间
DayLocator:定位一个月中的指定日期
MonthLocator:定位月份
YearLocator:定位年份
在示例中,我使用MinuteLocator
, 间隔 15 分钟。
在绘图中导入matplotlib.dates
工作日期:
import matplotlib.dates as mdates
import pandas as pd import matplotlib.pyplot as plt
获取您的数据
# Sample data
# Data
df = pd.DataFrame({
'Date': ['07/14/2020', '07/14/2020', '07/14/2020', '07/14/2020'],
'Time': ['12:15:00 AM', '12:30:00 AM', '12:45:00 AM', '01:00:00 AM'],
'Temperature': [22.5, 22.5, 22.5, 23.0]
})
从字符串转换Time period为日期对象:
# Convert data to Date and Time
df["Time period"] = pd.to_datetime(df['Date'] + ' ' + df['Time'])
定义min和max间隔:
min = min(df['Time period'])
max = max(df['Time period'])
创建你的情节:
# Plot
# Create figure and plot space
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot()
使用定位器设置时间间隔:
# Set Time Interval
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=15))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M'))
设置绘图选项并绘制:
# Set labels
ax.set(xlabel="Time",
ylabel="Temperature",
title="Temperature distribution Graph", xlim=[min , max])
# Plot chart
ax.plot('Time period', 'Temperature', data=df, linewidth=2, color='g')
ax.grid(True)
fig.autofmt_xdate()
plt.show()
添加回答
举报