Python 使用 matplotlib 绘制常见曲线

举报
福州司马懿 发表于 2022/11/14 17:54:33 2022/11/14
【摘要】 matplotlib概述Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形官网地址 https://matplotlib.org/ 代码实战 代码说明编辑器采用的是 anaconda 自带的 Sypder sigmoid曲线sigmoid曲线公式如下,可将值域限定在(0,1),在深度学习目标分类检测中常常用到,可限定坐标...

matplotlib概述

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形

官网地址 https://matplotlib.org/

图片.png

安装命令

在 anaconda 中,可以使用pip命令进行安装或升级

安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

升级
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U matplotlib

  • -i: 指定库的安装源 清华源
  • -U: 升级 原来已经安装的包,不带U不会装新版本,带上U才会更新到最新版本

代码实战

代码说明

编辑器采用的是 anaconda 自带的 Sypder

sigmoid曲线

sigmoid曲线公式如下,可将值域限定在(0,1),在深度学习目标分类检测中常常用到,可限定坐标范围、分类概率

图片.png

import numpy as np
import math
import matplotlib.pyplot as plt
x = np.arange(-10, 10, 0.1)
y = []
for t in x:
    y_1 = 1 / (1 + math.exp(-t))
    y.append(y_1)
plt.plot(x, y, label="sigmoid")
plt.xlabel("x")
plt.ylabel("y")
plt.ylim(0, 1)
plt.legend()
plt.show()

图片.png

sin & cos曲线

import numpy as np
import matplotlib.pyplot as plt
#sin & cos曲线
x = np.arange(0, 6, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x,y1,label="sin")
plt.plot(x,y2,label="cos",linestyle = "--")
plt.xlabel("x")
plt.ylabel("y")
plt.title('sin & cos')
plt.legend()   #打上标签
plt.show()

图片.png

lanczos曲线

lanczos曲线常常用在图像插值中,这个算法在放大和缩小中都能较好的抵制锯齿,在插值时,不仅有正的插值系数,也有负的系数,比较适用于自然图像。

图片.png

import numpy as np
import matplotlib.pyplot as plt
#lanczos曲线
x = np.arange(-6, 6, 0.1)
a1 = 2
a2 = 3
a3 = 5
y1 = np.sinc(x) * np.sinc(x/a1)
y2 = np.sinc(x) * np.sinc(x/a2)
y3 = np.sinc(x) * np.sinc(x/a3)
plt.plot(x,y1,label="a=2")
plt.plot(x,y2,label="a=3",linestyle="--")
#plt.plot(x,y3,label="a=5",linestyle="--")
plt.title('sinc')
plt.legend()   #打上标签
plt.show()

图片.png

jpeg编码的qp曲线

jpeg的quality参数对应DCT变换的量化程度,quality(0-100)值越高,表示量化损失越小,编码质量越好。

import numpy as np
import matplotlib.pyplot as plt
#jpeg编码的qp曲线
x = np.arange(0.1, 100, 0.1)        #从0.1100,间隔0.1取点
y = []
for t in x:
    if t < 50:
        y_1 = 5000 / t
    else:
        y_1 = 200 - t * 2
    y.append(y_1)
plt.plot(x, y, label="qp-quality")
plt.xlabel("quality")
plt.ylabel("qp")
plt.ylim(0, 500)
plt.legend()    #显示label
plt.show()

图片.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。