Matplotlib菜鳥教程

一、簡介

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:27
下一篇 2024-12-12 13:27

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變數類型,而是在變數第一次賦值時自動識別該變數的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • Python最強大的製圖庫——Matplotlib

    Matplotlib是Python中最強大的數據可視化工具之一,它提供了海量的製圖、繪圖、繪製動畫的功能,通過它可以輕鬆地展示數據的分布、比較和趨勢。下面將從多個方面對Matplo…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows伺服器上的日誌,並將其發送到遠程伺服器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Python畫K線教程

    本教程將從以下幾個方面詳細介紹Python畫K線的方法及技巧,包括數據處理、圖表繪製、基本設置等等。 一、數據處理 1、獲取數據 在Python中可以使用Pandas庫獲取K線數據…

    編程 2025-04-28

發表回復

登錄後才能評論