Jupyter notebook教程系列(八)在Jupyter notebook上学习Matplotlib

atplotlib 是一个 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-4

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

猜你喜欢

转载自blog.csdn.net/dlhlSC/article/details/84309322