python畫圖之matplotlib基礎快速入門

matplotlib是數據分析三劍客之一
其中需要理解figure(畫布)、axes(座標系)、axis(座標軸)三個基本概念,畫布就是創建一個畫圖的基本區域,
座標系就是一個畫布中分割爲多個小的畫圖區域,稱爲座標系(例如一個畫布中可以同時放三張圖),
而座標軸就是具體每一個畫圖的小區域的x軸,y軸,z軸了。
以下代碼部分來自公衆號‘數據分析與統計學之美’,號主也是相當的厲害,還經常分享小福利,有需要的可以加他。

導入相關庫
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
# 排除警告信息
import warnings
warnings.filterwarnings("ignore")

# 打印版本信息
display(np.__version__)
display(pd.__version__)
display(mpl.__version__)

# matplotlib畫圖常見參數設置
mpl.rcParams["font.family"] = "SimHei" # 設置字體
mpl.rcParams["axes.unicode_minus"]=False # 用來正常顯示負號
plt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文標籤

# 嵌入式顯示圖形
%matplotlib inline

畫圖示例
import matplotlib as mpl
import matplotlib.pyplot as plt

x= [i for i in range(20)]
y=[2*i+2 for i in range(20)]

# print(x)
# print(y)

plt.plot(x,y)
plt.show()

在這裏插入圖片描述

在一個畫布中創建兩個座標系裏畫兩張圖,合併爲一張圖

import matplotlib as mpl
import matplotlib.pyplot as plt

figure = plt.figure()
# 獲取每個位置的axes對象
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,1)

axes1.plot([1,3,5,7],[4,9,6,8])
axes2.plot([1,2,4,5],[8,4,6,2])
figure.show()


這裏其實可以直接這樣,在一個座標系裏作兩張圖
plt.plot([1,3,5,7],[4,9,6,8])
plt.plot([1,2,4,5],[8,4,6,2])
plt.show()
效果跟上面是一樣的

如圖所示

在這裏插入圖片描述
在一個畫布figure裏面創建兩個座標系axes,分開作兩張圖

figure = plt.figure()
# 獲取每個位置的axes對象
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)
該函數的第一個參數代表子圖的總行數,第二個參數代表子圖的總列數,第三個參數代表活躍區域。

axes1.plot([1,3,5,7],[4,9,6,8])
axes2.plot([1,2,4,5],[8,4,6,2])
figure.show()
如圖所示


在這裏插入圖片描述
拋物線繪圖

import matplotlib as mpl
import matplotlib.pyplot as plt

x= [i for i in range(-10,10)]
y=[2*i*i+2 for i in range(-10,10)]

# print(x)
# print(y)

plt.plot(x,y)
plt.show()

在這裏插入圖片描述
也可以這樣

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)#-3,3中間50個點。
y1=2*x+1
y2=x**2
 
plt.figure(num=3,figsize=(8,5))#下面都是這張figure中的,編號,大小橫軸,和縱軸,函數也可以顯示在同一個圖片中,
plt.plot(x, y2, color='black', linewidth=1.5, linestyle='--')  # 風格是虛線,線的的u寬度。顏色。
plt.plot(x, y1, color='red', linewidth=1.5)
plt.show()

#https://blog.csdn.net/abc13526222160/article/details/85264865

在這裏插入圖片描述
正弦函數繪圖

x = np.linspace(0, 2 * np.pi, 50)
y = np.sin(x)
plt.plot(x, y)
plt.plot(x, y*2)
plt.show()

在這裏插入圖片描述

效果太美

x = np.linspace(0, 2 * np.pi, 50)
ax1 = plt.subplot(2, 2, 1) # (行,列,活躍區)
plt.plot(x, np.sin(x), 'r')

ax2 = plt.subplot(2, 2, 2, sharey=ax1) # 與 ax1 共享y軸
plt.plot(x, 2 * np.sin(x), 'g')

ax3 = plt.subplot(2, 2, 3)
plt.plot(x, np.cos(x), 'b')

ax4 = plt.subplot(2, 2, 4, sharey=ax3) # 與 ax3 共享y軸
plt.plot(x, 2 * np.cos(x), 'y')

plt.show()

#https://blog.csdn.net/csdnsevenn/article/details/82731538?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3.nonecase

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章