matplotlib教程

目录

三、matplotlib概述

matplotlib是python的一个绘图库。使用它可以很方便的绘制出版质量级别的图形。通常用于数据可视化

数据可视化

数据可视化是指使用图形的方式展现数据的分布规律

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKqvPqsX-1638272061347)(./img/饼图示例.png)]

1. matplotlib基本功能

  1. 基本绘图 (在二维平面坐标系中绘制连续的线)
    1. 设置线型、线宽和颜色
    2. 设置坐标轴范围
    3. 设置坐标刻度
    4. 设置坐标轴
    5. 图例
    6. 特殊点
    7. 备注
  2. 图形对象(图形窗口)
    1. 子图
    2. 刻度定位器
    3. 刻度网格线
    4. 半对数坐标
    5. 散点图
    6. 填充
    7. 条形图
    8. 饼图
    9. 等高线图
    10. 热成像图
    11. 三维曲面
    12. 简单动画

官方文档: https://matplotlib.org/

官方中文文档: https://www.matplotlib.org.cn/

四、matplotlib基本功能详解

1. 基本绘图

1)绘图核心API
  • 绘制水平线API
import matplotlib.pyplot as plt
plt.axhline(y=y轴位置 ...)
plt.hlines([y1, y2, y3, ...],  # Y轴 位置
           [x11, x21, x31, ...],  # X 轴的起始位置
           [x12, x22, x32, ...])  # X 轴的终止位置
  • 绘制垂直竖线API
import matplotlib.pyplot as plt
plt.axvline(x=x轴位置, ...)
plt.vlines([x1, x2, x3, ...],  # X轴 位置
           [y11, y21, y31, ...],  # Y 轴的起始位置
           [y12, y22, y32, ...])  # Y 轴的终止位置
  • 绘制折线API
import matplotlib.pyplot as plt
plt.plot(x坐标点(矢量), y坐标点(矢量), ...)

案例: 绘制简单直线

import numpy as np
import matplotlib.pyplot as plt

# 绘制水平线
plt.axhline(y=6, ls=":", c="blue")  # 添加水平直线
# 绘制垂线
plt.axvline(x=4, ls="-", c="red")   # 添加垂直直线

# 绘制多段垂线
plt.vlines([2, 3, 3.5],   # 垂线的x坐标值
          [10, 20, 30],  # 每条垂线起始y坐标
          [25, 35, 45])  # 每条垂线结束y坐标

# 绘制简单直线
x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 2, 9, 8, 15])

plt.plot(x, y)
plt.savefig('mypic.png')  # 保存图片为PNG 图片
plt.show() # 显示图片,阻塞方法

执行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Byf22lb-1638272061348)(./img/直线.png)]

2)设置线条属性( 线型、线宽…)
  • 用来标识线性的关键字参数

    • linestyle、ls:

      设置线型

      • 符号字符串:常见取值有实线(’-’)、虚线(’–’)、点虚线(’-.’)、点线(’:’)
      • 线型名字字符串,如:‘solid’, ‘dotted’, ‘dashed’, ‘dashpot’
      • 元组:如(0, (1, 5))

      具体线型见下表

    • linewidth、lw:线宽数字

    • color、c颜色:

      • 颜色字符串,如: ‘red’, ‘dodgerblue’; 详见下表《颜色标记字符串》
      • RGB 格式的字符串#RRGGBB, 如 ‘#CE50B3’或#RRGGBBAA 如:’#FF888840’
      • RGB颜色的列表(red, blue, green), 如(0.3, 1.0, 0.5, 0.5)
    • alpha: 设置透明度(0~1之间)

案例:绘制正弦、余弦曲线,并设置线型、线宽、颜色、透明度

# 绘制正弦曲线
import numpy as np
import matplotlib.pyplot as plt
import math

x = np.arange(0, 2 * np.pi, 0.1)  # 以0.1为单位,生成0~6的数据
print(x)
y1 = np.sin(x)
y2 = np.cos(x)

# 绘制图形
plt.plot(x, y1, label="sin", linewidth=2)  # 实线,线宽2像素
plt.plot(x, y2, label="cos", linestyle="--", linewidth=4)  # 虚线,线宽4像素

plt.xlabel("x")  # x轴文字
plt.ylabel("y")  # y轴文字

# 设置坐标轴范围
plt.xlim(0, 2 * math.pi)
plt.ylim(-1, 2)

plt.title("sin & cos")  # 图标题
plt.legend()  # 图例
plt.show()

执行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmXKxS3E-1638272061349)(./img/sin_cos曲线.png)]

  • 线型表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MHDASXNK-1638272061349)(./img/line_style.png)]

  • 颜色标记字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmJdLqd4-1638272061350)(./img/matplotlib_colors.png)]

3)设置坐标轴范围

语法:

#x_limt_min:    <float> x轴范围最小值
#x_limit_max:    <float> x轴范围最大值
plt.xlim(x_limt_min, x_limit_max)
#y_limt_min:    <float> y轴范围最小值
#y_limit_max:    <float> y轴范围最大值
plt.ylim(y_limt_min, y_limit_max)
4)设置坐标刻度

语法:

# 设置 x 轴 刻度
plt.xticks(
    ticks=None,   # x轴刻度值序列
    labels=None,  # x轴刻度标签文本序列
    rotation=0    # 刻度旋转角度
)
# 设置 y 轴 刻度
plt.yticks(
    ticks=None,   # y轴刻度值序列
    labels=None,  # y轴刻度标签文本序列
    rotation=0    # 刻度旋转角度
)
5) 设置坐标文字

语法

# 设置x轴文字
plt.xlabel("x轴文字", fontsize=字体大小) 
# 设置y轴文字
plt.ylabel("y轴文字", fontsize=字体大小) 

案例:绘制二次函数曲线

# 绘制二次函数曲线
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-5, 5, 0.1)  # 以0.1为单位,生成-5~5的数据
y = x ** 2

# 绘制图形
plt.plot(x, y, label="$y = x^2$",
         linewidth=2,  # 线宽2像素
         color="red",  # 颜色
         alpha=0.5)  # 透明度

plt.xlabel("x")  # x轴文字
plt.ylabel("y")  # y轴文字

# 设置坐标轴范围
plt.xlim(-10, 10)
plt.ylim(-1, 30)

# 设置刻度
plt.title("square")  # 图标题
plt.legend(loc="upper right")  # 图例 upper right, center
plt.show()

执行:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AX5MaWgB-1638272061350)(./img/一元二次曲线.png)]

刻度文本的特殊语法LaTex排版语法字符串

r'$x^n+y^n=z^n$',   r'$\int\frac{1}{x} dx = \ln |x| + C$',     r'$-\frac{\pi}{2}$'

x n + y n = z n , ∫ 1 x d x = ln ⁡ ∣ x ∣ + C , − π 2 x^n+y^n=z^n, \int\frac{1}{x} dx = \ln |x| + C, - \frac{\pi}{2} xn+yn=zn,x1dx=lnx+C,

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值