昊虹AI笔记网

 找回密码
 立即注册
搜索
查看: 872|回复: 0
收起左侧

使用Python的Matplotlib库绘制图形的实例积累

[复制链接]

239

主题

241

帖子

928

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
928
昊虹君 发表于 2023-1-7 09:05 | 显示全部楼层 |阅读模式
使用Python的Matplotlib库绘制图形的实例积累

Matplotlib的使用和MATLAB的plot的函数使用很相似,因为它就是根据MATLAB的plot的函数写出来的库。

目录
  • 01-两个数组元素个数相同,其中一个作为x轴,另一个作为y轴
  • 02-利用方法figure()在同一个程序中绘制多幅图像
  • 03-绘制以某个一维数组的索引为横坐标,具体的值为纵坐标的曲线
  • 04-利用plt.imshow()以图像形式显示矩阵

01-两个数组元素个数相同,其中一个作为x轴,另一个作为y轴
  1. # 出处:昊虹AI笔记网(hhai.cc)
  2. # 用心记录计算机视觉和AI技术

  3. import numpy as np
  4. import matplotlib.pyplot as plt

  5. X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
  6. C = np.cos(X)
  7. S = np.sin(X)

  8. plt.plot(X, C)
  9. plt.plot(X, S)
  10. plt.show()
复制代码

运行结果如下:


02-利用方法figure()在同一个程序中绘制多幅图像
  1. # -*- coding: utf-8 -*-
  2. # 出处:昊虹AI笔记网(hhai.cc)
  3. # 用心记录计算机视觉和AI技术

  4. import numpy as np
  5. import matplotlib.pyplot as plt

  6. X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
  7. C = np.cos(X)
  8. S = np.sin(X)

  9. plt.figure(1)
  10. plt.plot(X, C)

  11. plt.figure(2)
  12. plt.plot(X, S)

  13. plt.show()
复制代码

运行结果如下:

                                          



03-绘制以某个一维数组的索引为横坐标,具体的值为纵坐标的曲线
  1. import numpy as np
  2. import matplotlib.pyplot as plt

  3. A1 = np.array([1, 2, 3, 4], dtype='uint8')

  4. plt.plot(A1)
  5. plt.show()
复制代码

运行结果如下图所示:

从上面的运行结果可以清楚的看出,横坐标的确就是索引值,而纵坐标就是索引对应的元素的值。

04-利用plt.imshow()以图像形式显示矩阵
图像说白了就是矩阵,利用plt.imshow()可以以图像形式显示矩阵。
参数意义及参数cmap的意义可参考下面这篇博文:
https://blog.csdn.net/qq_28485501/article/details/82656614
参数cmap就是将矩阵的元素值映射到某个颜色空间。举例子来说,如果矩阵是二维矩阵,又通过设置参数cmap使值映射到灰度空间 Greys_r’,则相当于是显示这个二维矩阵表示的灰度图像; 如果矩阵是三维矩阵,默认情况下是映射到RGB空间,相当于显示三维矩阵表示的彩色图像。
示例代码如下:
  1. # -*- coding: utf-8 -*-
  2. # 出处:昊虹AI笔记网(hhai.cc)
  3. # 用心记录计算机视觉和AI技术

  4. import numpy as np
  5. from matplotlib import pyplot as plt

  6. A1 = np.array([[0, 1, 2, 3],
  7.               [4, 5, 6, 7]], dtype='uint8')

  8. plt.figure(1)
  9. plt.imshow(A1, cmap='Reds', interpolation='nearest', origin='upper')

  10. plt.figure(2)
  11. plt.imshow(A1, cmap='Greys', interpolation='nearest', origin='upper')

  12. plt.figure(3)
  13. plt.imshow(A1, cmap='Greys_r', interpolation='nearest', origin='upper')

  14. plt.show()
复制代码

运行结果如下:

                                          

                                          

从上面的结果可以看出:
如果颜色空间不带后缀“_r”,则值越大,颜色越深;
如果颜色空间带后缀“_r”,则值越大,颜色越浅。

利用plt.imshow()可以帮助我们轻松绘制出图像的H-S二维直方图,详情见:
https://www.hhai.cc/thread-209-1-1.html


....更多实例积累中...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|昊虹AI笔记网 ( 蜀ICP备2022024117号-1 )

GMT+8, 2024-5-4 01:19 , Processed in 0.020701 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表