」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何根據Python中的列值為散佈圖中的點指定顏色?

如何根據Python中的列值為散佈圖中的點指定顏色?

發佈於2024-11-10
瀏覽:840

How to Assign Colors to Points in Scatter Plots Based on Column Values in Python?

Python 中按列值對散點圖著色

R 中ggplot2 的多功能性允許根據列將顏色無縫分配給數據點價值觀。也可以使用 pandas 資料幀和 Matplotlib 在 Python 中複製此功能。

使用Pandas 和Matplotlib

要將顏色對應到Matplotlib 中的值,請考慮以下步驟:

  1. 建立顏色字典:定義映射分類中唯一值的字典列對應的顏色。這可確保跨資料點的顏色分配保持一致。
  2. 新增顏色列:在資料框中建立一個新列,為分類列中的每個值指派對應的顏色。
  3. 繪製散點圖:使用matplotlib.pyplot.scatter中的c參數指定顏色列作為顏色argument.

這是一個示例實現:

def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
    fig, ax = plt.subplots()
    categories = np.unique(df[catcol])
    colors = np.linspace(0, 1, len(categories))
    colordict = dict(zip(categories, colors))  

    df["Color"] = df[catcol].apply(lambda x: colordict[x])
    ax.scatter(df[xcol], df[ycol], c=df.Color)
    return fig

範例用法

考慮一個包含身高、體重和性別列的資料框。要建立根據性別列分配顏色的散佈圖:

df = pd.DataFrame({'Height':np.random.normal(size=10),
                       'Weight':np.random.normal(size=10),
                       'Gender': ["Male","Male","Unknown","Male","Male",
                                  "Female","Did not respond","Unknown","Female","Female"]})    
fig = dfScatter(df)

這將產生一個散點圖,其中性別列決定每個資料點的顏色。

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

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

Copyright© 2022 湘ICP备2022001581号-3