天津自动网站建设调试,网页设计师培训费用,门户网站建设推荐,网站搭建合同范本有两列数据#xff0c;一列是日期#xff0c;另一列是数值。日期是递增的#xff0c;但是间隔不是均匀的。比如1月1日至2月1日有10组数据#xff0c;2月1日至3月1日有100组数据#xff0c;3月1日至4月1日有1000组数据。我想绘折线图#xff0c;横坐标是日期#xff0c;纵…有两列数据一列是日期另一列是数值。日期是递增的但是间隔不是均匀的。比如1月1日至2月1日有10组数据2月1日至3月1日有100组数据3月1日至4月1日有1000组数据。我想绘折线图横坐标是日期纵坐标是第二列数值。但是横坐标需要每月是等间隔。比如1月1日-2月1日和2月1日-3月1日是等间隔的。
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
from datetime import datetime, timedelta
import random
import warnings
warnings.simplefilter(actionignore, categoryFutureWarning)
plt.rcParams[font.sans-serif] [SimHei] # 显示中文
plt.rcParams[axes.unicode_minus] False # 显示负号
font {family: Times New Roman, size: 20, color: 0.5, weight: bold}# 生成假的日期和数值数据
dates []
values []# 1月1日至2月1日有10组数据
start_date datetime(2022, 1, 1)
end_date datetime(2022, 2, 1)
current_date start_date
while current_date end_date:dates.append(current_date)values.append(random.randint(1, 100))current_date timedelta(days3)# 2月1日至3月1日有100组数据
start_date datetime(2022, 2, 1)
end_date datetime(2022, 3, 1)
current_date start_date
while current_date end_date:dates.append(current_date)values.append(random.randint(1, 100))current_date timedelta(days1)# 3月1日至4月1日有1000组数据
start_date datetime(2022, 3, 1)
end_date datetime(2022, 4, 1)
current_date start_date
while current_date end_date:dates.append(current_date)values.append(random.randint(1, 100))current_date timedelta(hours6)# 创建DataFrame
df pd.DataFrame({date: dates, value: values})# 设置横坐标刻度为月份
fig, ax plt.subplots(figsize[12,3])
ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter(%Y-%m-%d))# 绘制折线图
plt.plot(df[date], df[value])# 添加标题和标签
plt.title(Line Plot of Values)
plt.xlabel(Date)
plt.ylabel(Value)# 显示图形
plt.show()