机器学习之Matplotlib 图像绘制

前言

这里记录机器学习的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()有释放资源的作用

运行结果

机器学习之Matplotlib 图像绘制_第1张图片

二、图像绘制功能模块

代码如下(示例):

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()

运行结果

机器学习之Matplotlib 图像绘制_第2张图片

三、绘制多个坐标系图像

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()

运行结果

机器学习之Matplotlib 图像绘制_第3张图片

四、绘制数学图像

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()

运行结果

机器学习之Matplotlib 图像绘制_第4张图片


五、设置图像风格参数

其中color=‘r’ 表示颜色为红色
linestyle=“–” 表示线条为虚线
机器学习之Matplotlib 图像绘制_第5张图片

显示图例时可添加位置参数

plt.legend(loc=“best”)
机器学习之Matplotlib 图像绘制_第6张图片
机器学习之Matplotlib 图像绘制_第7张图片

你可能感兴趣的:(数据可视化,matplotlib,机器学习,python)