1. 程式人生 > >Python視覺化中的Matplotlib繪圖(1.畫圖,網格,子圖,畫正餘弦圖,座標軸界限,畫圓,)

Python視覺化中的Matplotlib繪圖(1.畫圖,網格,子圖,畫正餘弦圖,座標軸界限,畫圓,)

1.一張基本的圖示包含的元素;

   · x軸和y軸 以及他們的刻度線 、標籤、繪圖區域

import matplotlib.pyplot as plt   # 匯入繪圖模組
import numpy as np               #  匯入需要生成資料的numpy模組
'''只有一個曲線圖'''
nd = np.linspace(0,100,10)
# plot 引數如果只有一個值,那x軸的座標預設是從0,1,2。。。
plt.plot(nd) # plt.plot(nd,nd**2)
plt.show()

2. 在一張圖上畫多個曲線

'''包含多個曲線圖'''
# 第一種方式:
x = np.arange(0,10,1)
plt.plot(x,x**2)
plt.plot(x,x**3)
plt.plot(x,x**4)
plt.show()

# 第二種方式
x = np.arange(0, 10, 1)
plt.plot(x, x * 2, x, x * 5, x, x * 3)  # 每組x和y之間用逗號隔開就行
plt.show()

'''繪製正弦餘弦'''
x = np.arange(-np.pi, np.pi , 0.01)  # numpy裡面有自帶的π,間隔設定為0.01
plt.plot(x,np.sin(x),x,np.cos(x))  # 在一張圖片上繪製正弦和餘弦
plt.show()

可以給圖片加上網格線       plt.grid()  #新增網格線

3. 在一張圖張顯示多個子圖

''' 一張圖片展示多張子圖   subplot()
plt 面向物件 (圖形就是所謂的物件)
'''
# sub = 子
x = np.arange(-10, 10, 0.1)
plt.figure(figsize=(12, 9))
axes = plt.subplot(1, 3, 1)  # 引數的意思:一行三列的第一個子圖圖
axes.plot(x, np.sin(x))
axes.grid(color='r',linestyle='--',linewidth=2)  # 設定網格 裡面可以設定顏色和網格線的樣式以及寬度

axes2 = plt.subplot(1, 3, 2)  # 一行三列的第二個子圖
axes2.plot(x, np.cos(x))
axes2.grid(color='g',linestyle='-.',linewidth=2)   # 設定網格 裡面可以設定顏色和網格線的樣式以及寬度

axes3 = plt.subplot(1, 3, 3)  # 一行三列的第二個子圖
axes3.plot(x, np.sin(x))
axes3.grid(color='b',linestyle=':',linewidth=2)  # 設定網格 裡面可以設定顏色和網格線的樣式以及寬度

plt.show()

4. 設定座標軸 界限

'''
座標軸界限
如果axis方法沒有任何引數,則返回當前座標軸的上下限 axis(xmin=,ymax=)
'''
x = np.random.rand(10)
'''裡面的引數 [x軸的最小值,x軸的最大值,y軸的最小值,x軸的最大值]'''
plt.axis([-5,15,-5,10])   # 注意有中括號括起來
plt.plot(x)
plt.show()

x = np.linspace(-5,5,100)
plt.plot(x,np.tan(x))
'''設定不顯示座標軸axis('off'),預設是顯示座標軸的引數為axis('tight')'''
plt.axis('off')
plt.show()
不顯示軸

 5.  利用Matplotlib 裡面的plt.axis('equal')  來畫一個圓形

'''利用 plt.axis('equal')來畫一個圓'''
x = np.linspace(-np.pi,np.pi,100)
plt.axis('equal')   # 'equal':即讓x和y的變化幅度相同
plt.plot(np.sin(x),np.cos(x))
plt.show()