|
Jupyter notebook学习MatplotlibMatplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 。 通过 Matplotlib ,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。1.1 Matplotlib图像的读取 - #开头要加上这句才可以在jupyternotebook中显示图像。
- %matplotlib inline
- import matplotlib.pyplot as plt
- # 创建一个名为cat,参数为默认参数的图相框
- plt.figure('cat')
- #读取
- little_dog_img = plt.imread('D:\jupyter_wokr\cat.png')
- #显示
- plt.imshow(little_dog_img )
复制代码
图1-1 1.2 .1使用matplotlib作图(默认参数) - import numpy as np#导入numpy库
- import matplotlib.pyplot as plt#导入matplotlib库
- #生成-π到+π的256个元素的等差数列
- X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
- #生成x的正弦余弦函数并赋值给C,S
- C,S = np.cos(X), np.sin(X)
- #画出x与C的图像
- plt.plot(X,C)
- #画出x与S的图像
- plt.plot(X,S)
- plt.show()#展示图像
复制代码
图1-2
1.2.2控制线的粗细
- import numpy as np#导入numpy库
- import matplotlib.pyplot as plt#导入matplotlib库
- X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
- #生成-π到+π的256个元素的等差数列
- C,S = np.cos(X), np.sin(X)
- #生成x的正弦余弦函数并赋值给C,S
- #画出x与C的图像
- plt.plot(X,C)
- #画出x与S的图像
- plt.plot(X,S)
- plt.figure(figsize=(10,6), dpi=80)#设置图表的宽高比为10:6,设置dpi为80
- plt.plot(X, C, color="yellow", linewidth=5, linestyle="-")#设置余弦函数颜色为黄色,线宽5,样式为连线
- plt.plot(X, S, color="red", linewidth=5, linestyle="-")
- plt.show()#展示图像
复制代码
图1-3 1.2.3改变坐标轴刻度的范围 - import numpy as np#导入numpy库
- import matplotlib.pyplot as plt#导入matplotlib库
- X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
- #生成-π到+π的256个元素的等差数列
- C,S = np.cos(X), np.sin(X)
- #生成x的正弦余弦函数并赋值给C,S
- 画出x与C的图像
- plt.plot(X,C)
- #画出x与S的图像
- plt.plot(X,S)
- plt.xlim(X.min()*3, X.max()*3)#x坐标轴最小值、最大值分别设置为X最小值和最大值的3
- plt.ylim(C.min()*2, C.max()*2)#y坐标轴最小值、最大值分别设置为X最小值和最大值的2
- plt.show()#展示图像
复制代码1.2.4 改变坐标轴刻度显示 - import numpy as np#导入numpy库
- import matplotlib.pyplot as plt#导入matplotlib库
- X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
- #生成-π到+π的256个元素的等差数列
- C,S = np.cos(X), np.sin(X)
- #生成x的正弦余弦函数并赋值给C,S
- #画出x与C的图像
- plt.plot(X,C)
- #画出x与S的图像
- plt.plot(X,S)
- plt.xticks( [-np.pi, -np.pi/2, 0, np.pi/2, np.pi])#显示+-π,+-π/2的刻度 plt.yticks([-1, 0, +1])#显示+-1,0的刻度
- plt.show()#展示图像
复制代码图1-5 1.3 利用matplotlib和Image联合作图 - from PIL import Image
- from pylab import *
- #读取图像到数组
- im = array(Image.open("cat.png"))
- imshow(im)
- #给定的x坐标和y坐标,坐标一一对应,共四个坐标(210,250)(1,5)(100,1)(150,150)
- x = [210,1,100,150]
- y = [250,5,1,150]
- #使用红色星状标记绘制点
- plot(x,y,'ro-')
- #绘制连接前两个点的线
- plot(x[:2],y[:2])
- #添加标题,显示绘制的图像
- title('Plotting: "empire.jpg"')
- #展示图像
- show()
复制代码图1-6 1.4绘制图像等轮廓和直方图 绘制图像轮廓:需要将图像灰度化。
直方图的意义:
表示该图像像素值的分布情况,用一定数目的小区间来指定像素值的范围,每一个小区间会得到落入该小区间表示范围的像素数目。 - from PIL import Image
- from pylab import *
- #读取图像转换为灰度图像并保存到数组
- im = array(Image.open("cat.jpg").convert('L'))
- #创建一个窗口,其各种属性都是使用默认设置
- figure()
- #gray灰度图处理
- gray()
- #在原点的左上角显示轮廓图像
- contour(im, origin = 'image')
- axis('equal')
- #绘制直方图
- #创建一个窗口,其各种属性都是使用默认设置
- figure()
- #第二个参数128代表指定小区间的数目
- hist(im.flatten(),128)
- #展示图像
- show()
复制代码图1-7 |
|