易学智能

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2262|回复: 2

Jupyter notebook接力赛(8)Jupyter notebook学习Matplotlib

[复制链接]

1

主题

17

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2018-9-6 10:31:25 | 显示全部楼层 |阅读模式
Jupyter notebook学习Matplotlib
Matplotlib 是一个 Python 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
1.1 Matplotlib图像的读取
  1. #开头要加上这句才可以在jupyternotebook中显示图像。
  2. %matplotlib inline
  3. import matplotlib.pyplot as plt
  4. # 创建一个名为cat,参数为默认参数的图相框
  5. plt.figure('cat')
  6. #读取
  7. little_dog_img = plt.imread('D:\jupyter_wokr\cat.png')
  8. #显示
  9. plt.imshow(little_dog_img )
复制代码

1.png
1-1
1.2 .1使用matplotlib作图(默认参数)
  1. import numpy as np#导入numpy库
  2. import matplotlib.pyplot as plt#导入matplotlib库
  3. #生成-π到+π的256个元素的等差数列  
  4. X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
  5. #生成x的正弦余弦函数并赋值给C,S
  6. C,S = np.cos(X), np.sin(X)
  7. #画出x与C的图像
  8. plt.plot(X,C)
  9. #画出x与S的图像
  10. plt.plot(X,S)
  11. plt.show()#展示图像
复制代码

2.png
1-2



1.2.2控制线的粗细
  1. import numpy as np#导入numpy库
  2. import matplotlib.pyplot as plt#导入matplotlib库
  3. X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
  4. #生成-π到+π的256个元素的等差数列
  5. C,S = np.cos(X), np.sin(X)
  6. #生成x的正弦余弦函数并赋值给C,S
  7. #画出x与C的图像
  8. plt.plot(X,C)
  9. #画出x与S的图像
  10. plt.plot(X,S)
  11. plt.figure(figsize=(10,6), dpi=80)#设置图表的宽高比为10:6,设置dpi为80
  12. plt.plot(X, C, color="yellow", linewidth=5, linestyle="-")#设置余弦函数颜色为黄色,线宽5,样式为连线
  13. plt.plot(X, S, color="red",  linewidth=5, linestyle="-")
  14. plt.show()#展示图像
复制代码

3.png
1-3
1.2.3改变坐标轴刻度的范围
  1. import numpy as np#导入numpy库
  2. import matplotlib.pyplot as plt#导入matplotlib库
  3. X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
  4. #生成-π到+π的256个元素的等差数列
  5. C,S = np.cos(X), np.sin(X)
  6. #生成x的正弦余弦函数并赋值给C,S
  7. 画出x与C的图像
  8. plt.plot(X,C)
  9. #画出x与S的图像
  10. plt.plot(X,S)
  11. plt.xlim(X.min()*3, X.max()*3)#x坐标轴最小值、最大值分别设置为X最小值和最大值的3
  12. plt.ylim(C.min()*2, C.max()*2)#y坐标轴最小值、最大值分别设置为X最小值和最大值的2
  13. plt.show()#展示图像
复制代码
4.png
图1-4
1.2.4 改变坐标轴刻度显示
  1. import numpy as np#导入numpy库
  2. import matplotlib.pyplot as plt#导入matplotlib库
  3. X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
  4. #生成-π到+π的256个元素的等差数列
  5. C,S = np.cos(X), np.sin(X)
  6. #生成x的正弦余弦函数并赋值给C,S
  7. #画出x与C的图像
  8. plt.plot(X,C)
  9. #画出x与S的图像
  10. plt.plot(X,S)
  11. plt.xticks( [-np.pi, -np.pi/2, 0, np.pi/2, np.pi])#显示+-π,+-π/2的刻度 plt.yticks([-1, 0, +1])#显示+-1,0的刻度
  12. plt.show()#展示图像
复制代码
5.png
1-5
1.3 利用matplotlibImage联合作图
  1. from PIL import Image
  2. from pylab import *
  3. #读取图像到数组
  4. im = array(Image.open("cat.png"))
  5. imshow(im)
  6. #给定的x坐标和y坐标,坐标一一对应,共四个坐标(210,250)(1,5)(100,1)(150,150)
  7. x = [210,1,100,150]
  8. y = [250,5,1,150]
  9. #使用红色星状标记绘制点
  10. plot(x,y,'ro-')
  11. #绘制连接前两个点的线
  12. plot(x[:2],y[:2])
  13. #添加标题,显示绘制的图像
  14. title('Plotting: "empire.jpg"')
  15. #展示图像
  16. show()
复制代码
6.png
1-6
1.4绘制图像等轮廓和直方图
绘制图像轮廓:需要将图像灰度化。
直方图的意义:
表示该图像像素值的分布情况,用一定数目的小区间来指定像素值的范围,每一个小区间会得到落入该小区间表示范围的像素数目。
  1. from PIL import Image
  2. from pylab import *
  3. #读取图像转换为灰度图像并保存到数组
  4. im = array(Image.open("cat.jpg").convert('L'))
  5. #创建一个窗口,其各种属性都是使用默认设置
  6. figure()
  7. #gray灰度图处理
  8. gray()
  9. #在原点的左上角显示轮廓图像
  10. contour(im, origin = 'image')
  11. axis('equal')
  12. #绘制直方图
  13. #创建一个窗口,其各种属性都是使用默认设置
  14. figure()
  15. #第二个参数128代表指定小区间的数目
  16. hist(im.flatten(),128)
  17. #展示图像
  18. show()
复制代码
7.png
1-7
回复

使用道具 举报

44

主题

139

帖子

382

积分

论坛管理

Rank: 4

积分
382
发表于 2018-9-26 16:40:16 | 显示全部楼层
不错,言简意赅。适合初学者学习,建议加上下载和安装Matplotlib库
回复

使用道具 举报

4

主题

34

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2018-10-8 08:20:21 | 显示全部楼层
哈哈哈我最近也在学习Matplotlib,很好很好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易学智能

GMT+8, 2024-12-22 13:05 , Processed in 0.016202 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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