机器学习基础-matplotlib
一、相关知识点
二、plot
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
#%%#%%
import matplotlib.pyplot as plt
import random# 画出温度的变化图# 1. 准备x y坐标的数据
x = range(60)
y_shanghai = [random.uniform(13, 15) for i in x] # 上海温度
y_beijing = [random.uniform(1, 6) for j in x] # 北京温度
# random.uniform(15,18) 这个函数返回的是15,18之间的随机浮点数
# 利用了列表推导式# 1. 创建画布
plt.figure(figsize=(20,10),dpi=90)# 2.绘制折线图
plt.plot(x,y_shanghai,color="b",linestyle= "--",label="上海")
plt.plot(x,y_beijing,color="r",linestyle="--",label="北京") #linestyle="--" 虚线
# 增加以下代码 增加刻度
# 构造x轴的刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
# 修改x轴的刻度、标签
plt.xticks(x[::5],x_ticks_label[::5],rotation=45)
# 修改y轴的刻度
y_ticks = range(40)
plt.yticks(y_ticks[::5])plt.xlabel("时间",fontsize = 30)
plt.ylabel("温度",fontsize = 30)plt.grid(True, linestyle='--', alpha=0.3, color='gray') # 使用灰色网格# 保存图片到指定路径
plt.savefig("test.png")
plt.legend(loc="best")plt.tight_layout()
#3. 图像显示
plt.show()
三、subplot
import numpy as np
import matplotlib.pyplot as plt
import random# 图像风格模仿ggplot
plt.style.use('ggplot')import matplotlib
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 使用黑体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
#%%# 图像风格模仿ggplot
plt.style.use('ggplot')# 生成数据
x = np.linspace(0,59,60)
y_shanghai = [random.uniform(13, 15) for i in x] # 上海温度
y_beijing = [random.uniform(1, 6) for j in x] # 北京温度#%%# 创建一个画布和两个子图
fig, axes = plt.subplots(2, 1, figsize=(10, 7), sharex=True)
axes = axes.flatten()# 定义x_ticks_label,y_ticks
x_ticks_label = ["11点{}分".format(i) for i in x]y_ticks = range(20)
# 绘制上海温度折线图
axes[0].plot(x, y_shanghai, c='r', label='上海',marker='o', linestyle='--')
# 绘制北京温度折线图
axes[1].plot(x, y_beijing, c='b', label='北京',marker='^', linestyle='-')
for ax in axes:print(ax)ax.set_ylabel("温度", fontsize=12)ax.grid(True, linestyle='--', alpha=0.3, color='gray') # 使用灰色网格# 注意刻度和刻度标签是不一样的ax.set_xticks(x[::5]) # 每隔5分钟显示一个刻度ax.set_xticklabels(x_ticks_label[::5], rotation=40) # 设置x轴刻度标签ax.set_yticks(y_ticks[::5])ax.set_xlabel("日期",fontsize=12)# 添加图例ax.legend(loc='upper right') # 第一个坐标轴的图例axes[0].tick_params(axis='y', labelcolor='r') # 设置第一个坐标轴的y轴刻度颜色
axes[0].set_ylabel('温度 (上海)', color='r') # 第一个坐标轴的y轴标签axes[1].tick_params(axis='y', labelcolor='b') # 设置第二个坐标轴的y轴刻度颜色
axes[1].set_ylabel('温度 (北京)', color='b') # 第二个坐标轴的y轴标签# 标题
plt.suptitle('中午11点0分到12点之间的温度变化图', fontsize=16)plt.show()