#绘制分布图
import pandas as pd
import matplotlib.pyplot as plt
# 读取 Excel 文件
df = pd.read_excel(r'C:\Users\wangkejun\Desktop\MLC1.xlsx')
# 将时间字符串转换为 datetime 类型
df['订单操作'] = pd.to_datetime(df['订单操作'], format='%H:%M:%S')
# 提取小时信息
df['订单操作'] = df['订单操作'].dt.hour
# 绘制时间段分布图
plt.figure(figsize=(10, 6))
plt.hist(df['订单操作'], bins=24, color='skyblue', edgecolor='black')
plt.xlabel('Hour of Day')
plt.ylabel('Frequency')
plt.title('Distribution of Time Periods')
plt.xticks(range(0, 24))
plt.grid(axis='y', alpha=0.75)
plt.show()
-
首先,通过
pd.read_excel()
函数读取名为"MLC1.xlsx"的Excel文件,并将数据存储在名为df
的DataFrame对象中。 -
然后,使用
pd.to_datetime()
函数将订单操作
列中的时间字符串转换为datetime类型。这里我们使用了format='%H:%M:%S'
参数来指定时间字符串的格式,以确保正确地解析时间信息。 -
接下来,我们提取了订单操作时间中的小时信息,将其存储回
订单操作
列中。这可以通过df['订单操作'].dt.hour
来完成,其中dt
表示datetime属性,.hour
表示提取小时信息。 -
然后,使用
plt.figure()
创建一个新的图形,并设置其大小为(10, 6)。 -
调用
plt.hist()
函数绘制直方图,其中df['订单操作']
是要绘制的数据,bins=24
表示将一天分成24个时段,color='skyblue'
设置颜色,edgecolor='black'
设置边缘颜色。 -
使用
plt.xlabel()
和plt.ylabel()
设置x轴和y轴的标签,plt.title()
设置图表的标题,plt.xticks(range(0, 24))
设置x轴刻度为0到23,plt.grid(axis='y', alpha=0.75)
显示y轴的网格线。 -
最后,调用
plt.show()
显示绘制的图表。