这里记录机器学习的Matplotlib可视化库的基本图像绘制过程。
Matplotlib是python中一个非常优秀的数据可视化第三方库。可绘制坐标系,饼状图等等一百多种形式的效果。
代码如下(示例):
import matplotlib.pyplot as plt
# 1.创建画布 figsize 图像大小 dpi 像素
plt.figure(figsize=(20,8),dpi=100)
# 2.绘制图像
x=[1,2,3,4]
y=[5,5,8,2]
plt.plot(x,y)
# 图像保存
plt.savefig("./data/test.png") #此处可以保存到当前目录图片格式
# 3.显示图像
plt.show()
# 图像保存一定放到show前 show()有释放资源的作用
代码如下(示例):
import random #用来生成随机数据
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
# 一.生成数据
x=range(60)
y_beijing=[random.uniform(10,15)for i in x]
y_shanghai=[random.uniform(15,25)for i in x]
# 二.创建画布
plt.figure(figsize=(20,8),dpi=100)
# 三.图像绘制
plt.plot(x,y_beijing,label="北京",color='c',linestyle='--')
plt.plot(x,y_shanghai,label="上海",color='g')
# 1.添加x,y轴刻度 plt.xticks plt.yticks 注意 第一个参数必须是数字,如果不是数字,需进行值替换
x_ticks_labels = ["10点{}分".format(i) for i in x]
y_ticks = range(40)
plt.xticks(x[::5],x_ticks_labels[::5])
plt.yticks(y_ticks[::5]) # 从头到尾 每间隔5个切一个
# 2.添加网格
plt.grid(True,linestyle="--",alpha=0.5) # 绘制网格的方式:实线/虚线 透明度
# 3.添加描述
plt.xlabel("时间",fontsize=30)
plt.ylabel("温度",fontsize=30)
plt.title("一小时温度变化图",fontsize=30)
# 4.显示图例
plt.legend() # 需要在图像绘制过程中,声明plot里面的label
# 四.图像展示
plt.show()
import random #用来生成随机数据
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
# 一.生成数据
x=range(60)
y_beijing=[random.uniform(10,15)for i in x]
y_shanghai=[random.uniform(15,25)for i in x]
# 二.创建画布
#plt.figure(figsize=(20,8),dpi=100)
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100) # nrows几行 ncols几列 注意有些方法需要添加set_*
# 三.图像绘制
# plt.plot(x,y_beijing,label="北京",color='c',linestyle='--')
# plt.plot(x,y_shanghai,label="上海",color='g')
axes[0].plot(x,y_beijing,label="北京",color='c',linestyle='--')
axes[1].plot(x,y_shanghai,label="上海",color='g')
# # 1.添加x,y轴刻度 plt.xticks plt.yticks 注意 第一个参数必须是数字,如果不是数字,需进行值替换
x_ticks_labels = ["10点{}分".format(i) for i in x]
y_ticks = range(40)
# plt.xticks(x[::5],x_ticks_labels[::5])
# plt.yticks(y_ticks[::5]) # 从头到尾 每间隔5个切一个
# 添加x,y轴刻度
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_labels[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_labels[::5])
# # 2.添加网格
# plt.grid(True,linestyle="--",alpha=0.5) # 绘制网格的方式:实线/虚线 透明度
axes[0].grid(True,linestyle="--",alpha=0.5)
axes[1].grid(True,linestyle="--",alpha=0.5)
# # 3.添加描述
# plt.xlabel("时间",fontsize=30)
# plt.ylabel("温度",fontsize=30)
# plt.title("一小时温度变化图",fontsize=30)
axes[0].set_xlabel("时间",fontsize=20)
axes[0].set_ylabel("温度",fontsize=20)
axes[0].set_title("上海温度变化图",fontsize=30)
axes[1].set_xlabel("时间",fontsize=20)
axes[1].set_ylabel("温度",fontsize=20)
axes[1].set_title("北京温度变化图",fontsize=30)
# 4.显示图例
# plt.legend() # 需要在图像绘制过程中,声明plot里面的label
axes[0].legend()
axes[1].legend() # alt + 鼠标左键 可以上下同步修改
# 四.图像展示
plt.show()
import matplotlib.pyplot as plt
import numpy as np
# 1.生成数据
x=np.linspace(0,10,1000)
# y=np.sin(x)
y=x*x*x*x
# 1.创建画布
plt.figure(figsize=(20,8),dpi=120)
# 2.绘制
plt.plot(x,y)
# 添加网格
plt.grid(True,linestyle="--",alpha=0.5)
# 3.显示
plt.show()
其中color=‘r’ 表示颜色为红色
linestyle=“–” 表示线条为虚线