Matplotlib常用繪圖示例


一.Matplotlib介紹

Matplotlib是一個Python的2D繪圖庫,它以各種硬拷貝格式和跨平台的交互式環境生成出版質量級別的圖形。通過Matplotlib,開發者可以僅需要幾行代碼,便可以生成繪圖,折線圖、散點圖、柱狀圖、餅圖、直方圖、子圖等。Matplotlib使用NumPy進行數組運算,並調用一系列其他的Python庫來實現硬件交互。

 

二.繪圖示例

環境:Python(3.5.2)、Jupyter(1.0.0) Ubuntu安裝Jupyter Notebook

1.折線圖

%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(9)
y = np.sin(x)
z = np.cos(x)
# marker數據點樣式,linewidth線寬,linestyle線型樣式,color顏色
plt.plot(x, y, marker="*", linewidth=3, linestyle="--", color="orange")
plt.plot(x, z)
plt.title("matplotlib")
plt.xlabel("height")
plt.ylabel("width")
# 設置圖例
plt.legend(["Y","Z"], loc="upper right")
plt.grid(True)
plt.show()

2.散點圖

x = np.random.rand(10)
y = np.random.rand(10)
plt.scatter(x,y)
plt.show()

3.柱狀圖

x = np.arange(10)
y = np.random.randint(0,30,10)
plt.bar(x, y)
plt.show()

4.餅圖

x = np.random.randint(1, 10, 3)
plt.pie(x)
plt.show()

5.直方圖

mean, sigma = 0, 1
x = mean + sigma * np.random.randn(10000)
plt.hist(x,50)
plt.show()

 

6.子圖

# figsize繪圖對象的寬度和高度,單位為英寸,dpi繪圖對象的分辨率,即每英寸多少個像素,缺省值為80
plt.figure(figsize=(8,6),dpi=100)

# subplot(numRows, numCols, plotNum)
# 一個Figure對象可以包含多個子圖Axes,subplot將整個繪圖區域等分為numRows行*numCols列個子區域,
按照從左到右,從上到下的順序對每個子區域進行編號
# subplot在plotNum指定的區域中創建一個子圖Axes
A = plt.subplot(2,2,1) plt.plot([0,1],[0,1], color="red") plt.subplot(2,2,2) plt.title("B") plt.plot([0,1],[0,1], color="green") plt.subplot(2,1,2) plt.title("C") plt.plot(np.arange(10), np.random.rand(10), color="orange") # 選擇子圖A plt.sca(A) plt.title("A") plt.show()

 

三.自定義X軸刻度

1.數字格式

%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator, FormatStrFormatter

x = np.arange(30)
y = np.sin(x)
plt.figure(figsize=(12,6))
plt.plot(x, y)
# 設置X軸的刻度間隔
plt.gca().xaxis.set_major_locator(MultipleLocator(3))
# 設置X軸的刻度顯示格式
plt.gca().xaxis.set_major_formatter(FormatStrFormatter("%d-K"))
# 自動旋轉X軸的刻度,適應坐標軸
plt.gcf().autofmt_xdate()
plt.show()

2.時間格式

%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np
import datetime
from matplotlib.dates import DayLocator, DateFormatter

x = [datetime.date.today() + datetime.timedelta(i) for i in range(30)]
y = np.sin(np.arange(30))
plt.figure(figsize=(12,6))
plt.plot(x, y)
# 設置X軸的時間間隔,MinuteLocator、HourLocator、DayLocator、WeekdayLocator、MonthLocator、YearLocator
plt.gca().xaxis.set_major_locator(DayLocator(interval=3))
# 設置X軸的時間顯示格式
plt.gca().xaxis.set_major_formatter(DateFormatter('%y/%m/%d'))
# 自動旋轉X軸的刻度,適應坐標軸
plt.gcf().autofmt_xdate()
plt.show()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM