」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 Matplotlib 繪製不同類別等級的不同顏色?

如何使用 Matplotlib 繪製不同類別等級的不同顏色?

發佈於2024-11-04
瀏覽:245

How Do I Use Matplotlib to Plot Distinct Colors for Various Categorical Levels?

如何在Python 中僅使用Matplotlib 繪製不同分類級別的不同顏色

簡介

本文介紹如何在Python 中創建散點圖使用matplotlib,其中每種顏色代表不同的分類等級。這種方法避免了使用Python的seaborn和ggplot等輔助繪圖套件。

與Matplotlib

Matplotlib在plt.scatter中提供了c參數,它允許顏色自訂。這是一個例子:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Scatter plot with colors
plt.scatter(df['carat'], df['price'], c=df['color'].map(colors))
plt.show()

map(colors)函數將「菱形」顏色對應到「繪圖」顏色。

與seaborn

雖然本文重點介紹matplotlib ,值得一提的是seaborn也提供了一個便捷的解決方案:

import seaborn as sns

# Scatter plot with colors
sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)

與pandas.DataFrame.groupby & pandas.DataFrame.plot

對於手動方法,您可以使用pandas 按顏色分組並分別繪製每個組:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Group by color and plot
grouped = df.groupby('color')
for key, group in grouped:
    group.plot(ax=plt.gca(), kind='scatter', x='carat', y='price', label=key, color=colors[key])

plt.show()

這假設與之前相同的 DataFrame 並在繪圖過程中手動分配顏色。

結論

本文示範如何為使用 matplotlib 在 Python 中進行不同的分類級別,以及使用 seaborn 的其他選項和使用 pandas 的手動方法。

版本聲明 本文轉載於:1729154360如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3