欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习笔记之matplotlib绘图

程序员文章站 2022-03-18 20:45:30
...

使用pip安装matplotlib:

pip install matplotlib

导入模块并起别名plt:

import matplotlib.pyplot as plt

简单绘图

plt.plot(x, y)    # 绘制y=f(x) 的图像
plt.show()    # 显示图像

多子图画图步骤

1、使用 figure() 函数创建画布

plt.figure(name)    # 传入字符串可为画布命名

2、使用 subplot() 函数在画布创建子图

plt.subplot(2, 1, 1)    # 创建2*1的子图,当前是第1个子图
#绘图1
plt.subplot(2, 1, 2)    # 当前在第2个子图,前两个参数和创建时一样
#绘图2

3、使用 plot() 函数画函数图像

plt.plot(x, y)    # x是一定范围内离散的数(点),y是x的函数值
plt.plot(x, y1, x, y2)   # 在同一坐标轴绘制多个函数图像

4、使用 show() 函数弹窗显示画布

plt.show()

样式:

plt.style.use()    # 传入'classic'引用经典样式,也可以引用其他样式
plt.plot(x, y, label='sin(x)', color='red', linewidth=1.0, linestyle='--', alpha=0.5)    # label 图像标签,color 指定颜色,linewidth 线宽,linestyle 线形,alpha 透明度

plt.title('title')    # 标题
plt.grid()    # 显示网格线
plt.legend(loc=0)    # 显示标签, loc控制位置

ax = plt.gca()    # 轴的编辑器
ax.spines['right'].set_color('none')    # 隐藏右边轴
ax.spines['left'].set_position(('data', 0))    # 设置左边轴位置:数据域0位置
plt.xticks(np.linspace(-np.pi, np.pi, 5), ['$-\pi$', '$-\pi/2$', '0', '$+\pi/2$', '$+\pi$'])    # 设置x轴标识

函数图像实例:

import matplotlib.pyplot as plt
import numpy as np

# 横轴取值范围-Π到Π,等间隔取20个点
x = np.linspace(-np.pi, np.pi, 20)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()    # 创建画布

plt.subplot(3, 1, 1)    #创建3*1子图,当前在第1个子图
plt.plot(x, y1, '--', label='sin(x)')    # 使用plot()函数画y1函数图像
plt.legend()    # 显示标签

plt.subplot(3, 1, 2)    #当前在第2个子图
plt.plot(x, y2, 'o', color='orange', label='cos(x)')    # 使用plot()函数画y2函数图像
plt.legend()    

plt.subplot(3, 1, 3)    # 当前在第3个子图
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')    # 使用plot()函数画y1和y2函数图像
plt.legend()
ax = plt.gca()
ax.spines['top'].set_color('none')    # 隐藏上边轴
ax.spines['right'].set_color('none')    # 隐藏右边轴
ax.spines['left'].set_position(('data', 0))    # 左边轴设置在0位置
ax.spines['bottom'].set_position(('data', 0))    # 下边轴设置在0位置
plt.xticks(np.linspace(-np.pi, np.pi, 5), ['$-\pi$', '$-\pi/2$', '0', '$+\pi/2$', '$+\pi$'])    # 设置x轴标识
plt.yticks(np.linspace(-1, 1, 5))    # 设置y轴标识

# 使用show()函数弹窗显示图形
plt.show()   

散点图

plt.scatter(x, y)

散点图实例:

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('classic')    # 引用经典样式

x = np.random.rand(100)    # 生成100个[0, 1)随机数
y = np.random.rand(100)
colors = np.random.rand(100)
size = 1000*np.random.rand(100)

plt.scatter(x, y, c=colors, s=size, alpha=0.5)    # 绘制散点图
plt.colorbar()    # 显示颜色条

plt.show()

柱状图

plt.bar(x, y)

柱状图实例:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 1)
y1 = 0.1*np.random.randint(3, 10, 10)
y2 = -0.1*np.random.randint(3, 10, 10)

plt.bar(x, y1)    # 绘制柱状图
plt.bar(x, y2)

plt.show()

3D

from mpl_toolkits.mplot3d import Axes3D   # 引入3D模块
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x, y, z)    # 在3D空间中画图

3D散点图实例:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

x = np.random.rand(250)
y = np.random.rand(250)
z = np.random.rand(250)

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x, y, z)

plt.show()