使用matplotlib库在Python中绘制散点图,展示了两个月份的气温变化。
# coding: utf-8
from matplotlib import pyplot as plt # 导入matplotlib库中的pyplot模块,并重命名为plt
from matplotlib import font_manager # 导入font_manager模块,用于设置字体
# 加载指定的字体文件,这里是微软雅黑字体,字体大小为10
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc', size=10)
# 3月份的气温数据
y_3 = [11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9, 12, 15, 14, 17, 18, 21, 16, 17, 20, 14, 15, 15, 15, 19, 21, 22, 22, 22, 23]
# 10月份的气温数据
y_10 = [26, 26, 28, 19, 21, 17, 16, 19, 18, 20, 20, 19, 22, 23, 17, 20, 21, 20, 22, 15, 11, 15, 5, 13, 17, 10, 11, 13, 12, 13, 6]
# 3月份的天数,从1到31
x_3 = range(1, 32)
# 10月份的天数,从51到81,因为50天刚好是9月份的最后一天
x_10 = range(51, 82)
# 设置图形大小,dpi是每英寸点数,figsize是图像的宽和高
plt.figure(figsize=(20, 8), dpi=80)
# 绘制散点图,x轴数据为x_3,y轴数据为y_3,标签为"3月份",颜色为红色,透明度为0.5
plt.scatter(x_3, y_3, label='3月份', color='red', alpha=0.5)
# 绘制散点图,x轴数据为x_10,y轴数据为y_10,标签为"10月份",颜色为蓝色,透明度为0.5
plt.scatter(x_10, y_10, label='10月份', color='blue', alpha=0.5)
# 生成新的x轴刻度,这里是将3月份和10月份的天数合并
_x = list(x_3) + list(x_10)
# 生成新的x轴刻度标签,这里是将日期格式化为"3月{}日"和"10月{}日"
_xtick_labels = ['3月{}日'.format(i) for i in x_3]
_xtick_labels += ['10月{}日'.format(i - 50) for i in x_10]
# 设置x轴刻度,使用新的刻度标签,并且每隔3个刻度显示一个,使用指定的字体,旋转45度
plt.xticks(_x[::3], _xtick_labels[::3], fontproperties=my_font, rotation=45)
# 添加x轴标签,显示"时间",使用指定的字体
plt.xlabel('时间', fontproperties=my_font)
# 添加y轴标签,显示"温度",使用指定的字体
plt.ylabel('温度', fontproperties=my_font)
# 添加图表标题,显示"3月份和10月份气温变化图",使用指定的字体
plt.title('3月份和10月份气温变化图', fontproperties=my_font)
# 添加图例,位置为左上角,使用指定的字体
plt.legend(prop=my_font, loc='upper left')
# 显示图像
plt.show()
段代码首先设置了图像的大小和字体,然后定义了两个月份的气温数据和对应的天数,接着分别绘制了两个月份的散点图,设置了x轴的刻度,添加了x轴和y轴的标签,以及图表的标题,绘制了图例,并显示了图像。效果如下: