【matplotlib基礎】--樣式表

2023-09-15 21:00:38

Matplotlib庫 由於誕生的比較早,所以其預設的顯示樣式很難符合現在的審美,這也是它經常為人詬病的地方。

不過,經過版本更迭之後,現在 Matplotlib 已經內建了很多樣式表,
通過使用不同的樣式表,可以整體改變繪製圖形的風格,不用再調整一個個顯示引數。

1. 樣式表的使用

1.1. 所有內建樣式表

首先,檢視內建的樣式表有哪些:

import matplotlib.pyplot as plt

plt.style.available

1.2. 使用樣式表的方式

使用樣式表的方式有兩種:
一種是全域性樣式表設定,比如:

plt.style.use("ggplot")

隨後的程式碼中,所有繪製的圖形都是 ggplot 風格。

另一種區域性樣式表設定,比如:

with plt.style.context("classic"):
    # 繪製圖形
    pass

這種方式,樣式表只在 with 範圍內生效。

2. 不同樣式表的效果

下面演示幾種風格差異比較大的樣式表。
首先,封裝一個繪製圖形的函數。

def draw():
    x = np.array(range(10))
    y = np.random.randint(10, 100, 10)
    
    fig = plt.figure(figsize=[6,4])
    fig.add_subplot(211)
    plt.plot(x, y)
    
    fig.add_subplot(212)
    plt.hist(y)

2.1. classic 風格

with plt.style.context("classic"):
    draw()

2.2. Solarize_Light2 風格

with plt.style.context("Solarize_Light2"):
    draw()

2.3. bmh 風格

with plt.style.context("bmh"):
    draw()

2.4. dark_background 風格

with plt.style.context("dark_background"):
    draw()	

2.5. fast 風格

with plt.style.context("fast"):
    draw()

2.6. ggplot 風格

with plt.style.context("ggplot"):
    draw()

2.7. seaborn 風格

seaborn是公認顏值比較高的繪相簿,所以 Matplotlib 也支援很多種seaborn風格。
這裡使用的是預設的 seaborn 風格。

with plt.style.context("seaborn-v0_8"):
    draw()

3. 總結

內建的樣式表方便易用,提供了許多預定義的樣式,可以快速幫助我們建立美觀的圖表。
使用內建的樣式表還有個好處是可以保持圖表的統一風格,使得圖表具有更高的可讀性和可維護性。

Matplotlib提供的豐富的樣式表,可以滿足不同型別的繪圖需求,並且還可以通過自定義樣式表來實現更加個性化的繪圖效果。