python优雅绘图--Matplotlib的使用

一图胜千言,画图的工具很多。今天我们开一个python的画图系列。第一篇我们介绍折线图的绘制。
1.折线图
1.最简单的折线图
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.show() # 在编辑器里显示图片
2.添加横纵坐标名称
import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.grid() # 给背景加入网格
plt.show() # 在编辑器里显示图片
3.将坐标的刻度转换为自己想要的标签
需要创建一个和原来坐标轴刻度大小一样的数组,来一一对应。
import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
4.设置坐标轴范围
我们有时需要指定坐标轴的范围。
import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
5.再添加一条曲线
import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制第一条曲线
plt.plot(x, x*y) # 再叠加一副图像
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
6.美化图像
import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
# c表示颜色,marker表示标记形状,linewidth表示线宽,markersize表示标记的大小
plt.plot(x, y, color='red', marker='s', label='Y1', linewidth=2, markersize=12) # 绘制第一条曲线
plt.plot(x, x * y, color='g', marker='o', label='Y2', linewidth=2, markersize=12) # 再叠加一副图像
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
7.显示图例
只用加入plt.legend() # 图例即可
import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
# c表示颜色,marker表示标记
plt.plot(x, y, color='red', marker='s', label='Y1', linewidth=2, markersize=12) # 绘制第一条曲线
plt.plot(x, x * y, color='g', marker='o', label='Y2', linewidth=2, markersize=12) # 再叠加一副图像
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.legend() # 图例
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
8.修改字体
import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
# c表示颜色,marker表示标记
plt.plot(x, y, color='red', marker='s', label='Y1', linewidth=2, markersize=12) # 绘制第一条曲线
plt.plot(x, x * y, color='g', marker='o', label='Y2', linewidth=2, markersize=12) # 再叠加一副图像
# 定义一个字典类型
font = {'fontsize': '20'}
plt.xlabel('x轴标题', font) # 纵坐标轴标题
plt.ylabel('y轴标题',font) # 纵坐标轴标题
plt.legend(fontsize=20) # 图例
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
# 修改坐标轴刻度字体大小
plt.xticks(x, x_tag, fontsize=10)
plt.show() # 在编辑器里显示图片
9.图片的保存
plt.savefig('保存图形名字', bbox_inches='tight') #加上这一句bbox_inches='tight',可以让保存的图形没有白色的边框。也可选择不加
版权属于: 依依东望