一、簡介
Matplotlib是一個基礎繪圖庫,可以創建各種靜態、動態、互動式的圖表、圖像和動畫。
在Python的數據可視化領域,Matplotlib是不可或缺的一部分。同時,由於其靈活性和豐富的功能,Matplotlib也成為了許多高級可視化工具的基礎。
在使用Matplotlib時,主要的抽象是「Figure」和「Axes」。Figure是繪圖空間的大容器,而Axes則是具體繪圖的子區域。Matplotlib支持許多種不同類型的圖表,例如線圖、散點圖、餅圖、條形圖等等。
二、常用圖表類型
1. 折線圖
折線圖是Matplotlib中最基礎的圖表類型之一,通常被用於呈現數據隨時間變化的趨勢。
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.show()
2. 散點圖
散點圖適合用於描繪兩個變數之間的關係,例如是否相關、是否有趨勢等。
import matplotlib.pyplot as plt import numpy as np x = np.random.randn(1000) y = np.random.randn(1000) plt.scatter(x, y) plt.show()
3. 餅圖
餅圖適合用於呈現數據在整體中的佔比關係。
import matplotlib.pyplot as plt labels = ['A', 'B', 'C', 'D'] sizes = [15, 30, 45, 10] explode = (0, 0.1, 0, 0) plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90) plt.axis('equal') plt.show()
4. 條形圖
條形圖適合用於對比不同類別的數據。
import matplotlib.pyplot as plt import numpy as np labels = ['A', 'B', 'C', 'D'] values = [1, 5, 3, 7] index = np.arange(len(labels)) plt.bar(index, values) plt.xticks(index, labels) plt.show()
三、定製化圖表
Matplotlib提供了豐富的視覺定製化選項,使得我們可以定製化美觀且能夠有效傳遞信息的圖表。
1. 設置標題和標籤
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.title('Sine Curve') plt.xlabel('X') plt.ylabel('Y') plt.show()
2. 添加註釋和箭頭
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.annotate('Max', xy=(np.pi/2, 1), xytext=(np.pi/2, 1.2), arrowprops=dict(facecolor='black', shrink=0.05)) plt.show()
3. 設置圖例和顏色
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) plt.plot(x, y1, label='Sine') plt.plot(x, y2, label='Cosine') plt.legend() plt.show()
四、動態圖表
Matplotlib還支持創建動態圖表,可以讓我們更加生動地展示數據隨時間變化的過程。
import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots() x = np.arange(0, 2*np.pi, 0.1) line, = ax.plot(x, np.sin(x)) def animate(i): line.set_ydata(np.sin(x+i/10)) return line, ani = FuncAnimation(fig, animate, frames=100, interval=20, blit=True) plt.show()
五、互動式圖表
Matplotlib還支持創建互動式圖表,允許用戶在圖表中進行選擇、縮放、平移等操作。
from matplotlib.widgets import Slider import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) fig, ax = plt.subplots() plt.subplots_adjust(left=0.25, bottom=0.25) l, = plt.plot(x, y) ax_color = 'lightgoldenrodyellow' axfreq = plt.axes([0.25, 0.1, 0.65, 0.03], facecolor=ax_color) freq_slider = Slider( ax=axfreq, label='Frequency', valmin=0.1, valmax=30, valinit=1, orientation='horizontal' ) def update(val): freq = freq_slider.val l.set_ydata(np.sin(x*freq)) fig.canvas.draw_idle() freq_slider.on_changed(update) plt.show()
六、總結
本篇文章主要介紹了Matplotlib的基礎使用方法、常用圖表類型、定製化圖表、動態圖表和互動式圖表等。這些內容組成了Matplotlib的基礎知識體系,在實際的數據可視化和科學研究中具有廣泛的應用價值。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248438.html