Matplotlib 中為直方圖著色

Maxim Maeder 2024年2月15日
Matplotlib 中為直方圖著色

本教程教你如何為 matplotlib 直方圖著色並解決條形顯示為黑色的問題。

在我們為直方圖著色之前,我們需要設定我們的指令碼以使用該庫。所以我們從匯入 matplotlib 開始。此外,我們從 random 模組載入 randrange 函式來快速生成一些資料。

import matplotlib.pyplot as plt
from random import randrange

我們繼續設定樣式,檢視所有可用的樣式檢視 plt.style.available

plt.style.use("classic")

最後但同樣重要的是,我們在單行迴圈中生成資料。這不會生成有意義的好資料,但它有利於測試目的。請記住,你的資料不會相同。

data = [randrange(0, 100) for _ in range(0, 800)]

在 Matplotlib 中為直方圖著色

現在我們製作一個彩色直方圖。我們只是傳遞給 color 引數一個顏色名稱來執行此操作。此處列出了 matplotlib 中可用的所有命名顏色。不要忘記呼叫show() 函式。

plt.hist(data, 3, color="red")
plt.show()

可能的結果:

matplotlib 直方圖顏色 - 3 個 bin

當我們設定更高數量的 bin 時,就會出現問題。正如你在影象中看到的,顏色不再是紅色而是黑色。

matplotlib 直方圖顏色 - 大量垃圾箱

這是因為我們使用的樣式將條的邊框顏色設定為黑色,現在我們看到的只有它。為了解決這個問題,我們要麼將條形邊框寬度設定為 0,要麼將其顏色也設定為紅色。

plt.hist(data, 500, color="red", ec="red")
# ec is the edge color

或者,

plt.hist(data, 500, color="red", lw=0)
# lw is the linewidth

完整程式碼:

import matplotlib.pyplot as plt
from random import randrange

plt.style.use("classic")

data = [randrange(0, 100) for _ in range(0, 800)]

plt.hist(data, 500, color="red", lw=0)

plt.show()
作者: Maxim Maeder
Maxim Maeder avatar Maxim Maeder avatar

Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.

GitHub

相關文章 - Matplotlib Histogram