import matplotlib.pyplot as plt
import random,io
from pylab import mpl
import numpy as np
# 画出温度变化图
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 准备x.y 坐标的数据
x= range(60)
y= [random.uniform(15,30) for i in x]
y_beijing = [random.uniform(10,20) for i in x]
space = np.linspace(0,50,60)
y_cos = np.cos(space*1000) #
# # 创建画布
plt.figure(figsize=(20,8),dpi=80)
# 绘制折线图
plt.plot(x,y,label='上海')
# 使用多次plot可以画多个折线
plt.plot(x,y_beijing,color='r',linestyle='--',label='北京') # ls(linestyle) 线条风格
plt.plot(x,y_cos,ls='-',lw=2,label='cosine',color='purple') # lw 是线宽度
# 构造x轴、y轴刻度标签
x_ticks_label = [f'11点{i}分' for i in x]
y_ticks_label = range(-10,45)
plt.xticks(x[::10],x_ticks_label[::10])
plt.yticks(y_ticks_label[::5])
# 添加网格显示
plt.grid(True,linestyle='--',alpha=0.5)
# 添加标题、x轴、y轴信息
plt.xlabel('时间',loc='right',labelpad=0.1)
plt.ylabel('温度',loc='top')
plt.title('上海中午11:00--12:00之间的温度变化图示',fontsize=20)
# 保存图像为BytesIO对象
# img_buffer = io.BytesIO()
# plt.savefig(img_buffer,format='png')
# img_buffer.seek(0)
# 添加图例
plt.legend(loc="best")
# 图像保存
plt.savefig("./test.png")
# # 显示图像
plt.show()