」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Python 中按列值對散佈圖著色?

如何在 Python 中按列值對散佈圖著色?

發佈於2024-11-08
瀏覽:502

How to Color Scatter Plots by Column Values in Python?

以列值為散佈圖著色

在Python 中,Matplotlib 函式庫提供了多種自訂散佈圖美觀的方法。一項常見任務是根據特定列中的值指派顏色。

Seaborn 整合

一個解決方案是利用基於 Matplotlib 建構的 Seaborn 函式庫。 Seaborn 提供 sns.relplot 和 sns.FacetGrid 等進階函數,讓您可以輕鬆地將散佈圖對應到特定列。透過指定hue參數,您可以根據包含類別標籤的第三列對點進行著色。

import seaborn as sns

sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')

直接使用Matplotlib

或者,您可以直接使用Matplotlib 的plt.scatter 函數建立散佈圖並手動指定顏色。這需要建立一個自訂顏色字典,將類別標籤對應到顏色。

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)
版本聲明 本文轉載於:1729320496如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • Python 與 Java:深入探討最適合您的程式語言
    Python 與 Java:深入探討最適合您的程式語言
    大家好!你这周过得怎么样? ?无论您是正在进行编码马拉松、享受应得的休息,还是只是来这里探索新技术创意,我们都很高兴有您。今天,我们将深入探讨一个热门话题:Python 与 Java。 ? 这两个编程巨头经常处于争论的中心,尤其是在为下一个项目选择正确的语言时。你应该选择Python的简单性还是Ja...
    程式設計 發佈於2024-11-08
  • 合併關聯數組時如何對共享鍵的值求和?
    合併關聯數組時如何對共享鍵的值求和?
    合併數組並對共享鍵值求和在組合與共享鍵關聯的值時,經常需要合併多個關聯數組。預設情況下,數值組合併會覆蓋衝突的值,如提供的範例所示。為了解決這個問題,我們提出了一系列方法,可以有效地為共享密鑰添加值,同時保留唯一密鑰。 使用陣列中間體:一種方法是計算使用陣列中間值手動求和。這涉及到迭代合併數組的鍵並...
    程式設計 發佈於2024-11-08
  • React 基礎知識~渲染效能/ useTransition
    React 基礎知識~渲染效能/ useTransition
    假設我們要顯示大量數據,例如一萬條數據,在將下一個值輸入到輸入欄位時通常會出現延遲。 在這種情況下,當我們輸入一個值時,螢幕會顯示過濾後的資料。 但是,出現的一個問題是由於處理太多資料而延遲顯示下一個操作,例如在輸入欄位中輸入下一個值。 ·src/Example.js import { us...
    程式設計 發佈於2024-11-08
  • PHP提交表單時如何防止多次插入?
    PHP提交表單時如何防止多次插入?
    防止PHP 中表單提交時的多次插入當使用者多次按下提交按鈕時,可能會在提交表單時發生多次插入。這可能會導致意外的數據重複。有幾種方法可以解決此問題:JavaScript 提交按鈕停用:此方法使用 JavaScript 停用提交按鈕後點擊。但是,它並不可靠,因為可以在不使用按鈕或停用 JavaScri...
    程式設計 發佈於2024-11-08
  • 探索 JavaScript 中真值與假值的核心...
    探索 JavaScript 中真值與假值的核心...
    在 JavaScript 中,真值是在布林上下文中計算時被視為 true 的任何值。不虛假的值被認為是真實的。 真值範例: 任何非零數字 (1,-5,3.14) 非空字串 ("hello" ) 空間值(" ") 物件 ({}, []) 布林值...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中抑制 \"htmlParseEntityRef: waiting \';\' in Entity\" 警告?
    如何在 PHP 中抑制 \"htmlParseEntityRef: waiting \';\' in Entity\" 警告?
    正在解析“htmlParseEntityRef:期待';' in Entity”警告將HTML 內容加載到DOMDocument 時,您可能會遇到警告“htmlParseEntityRef: waiting ' ;'在實體中。若要在確保正確的實體解析的同時緩解此警告,...
    程式設計 發佈於2024-11-08
  • 深入了解 MySQL:為有抱負的資料庫管理員提供的綜合教程
    深入了解 MySQL:為有抱負的資料庫管理員提供的綜合教程
    您是一位有抱負的資料庫管理員,希望擴展您的 MySQL 技能嗎?別再猶豫了!我們從 LabEx 精選了 8 個綜合教程,涵蓋了廣泛的基本資料庫管理主題。 ? 從掌握索引、備份和復原等基本操作,到探索使用者權限管理和 SQL 查詢等進階概念,此合集適合每個人。無論您是初學者還是經驗豐富的專業人士,這...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中根據與另一個 2D 數組的交集從 2D 數組過濾行?
    如何在 PHP 中根據與另一個 2D 數組的交集從 2D 數組過濾行?
    基於行交集過濾二維數組的行在PHP 中,array_diff_assoc() 函數旨在找出兩個數組之間的差異,同時對鍵值進行優先排序對。然而,當使用此函數根據與另一個 2D 數組的交集來過濾 2D 數組中的行時,它可能不會總是產生預期的結果。 理解問題問題的出現​​是由於由 array_diff_a...
    程式設計 發佈於2024-11-08
  • SQLRAG:利用自然語言和法學碩士轉變資料庫交互
    SQLRAG:利用自然語言和法學碩士轉變資料庫交互
    在資料驅動的世界中,速度和洞察力的可訪問性至關重要,SQLRAG 帶來了一種與資料庫互動的全新方法。透過利用大型語言模型 (LLM) 的強大功能,SQLRAG 使用戶能夠使用自然語言查詢資料庫,從而無需深厚的 SQL 知識。在這篇文章中,我們將深入探討 SQLRAG 的工作原理、其主要功能,以及它如...
    程式設計 發佈於2024-11-08
  • 哪些建置系統可以擴展 Go 的開發工作流程?
    哪些建置系統可以擴展 Go 的開發工作流程?
    Go 建置系統:擴展您的開發工作流程Go 是一種以其簡單性和併發性而聞名的程式語言,已獲得廣泛的認可。隨著開發專案的發展,對強大的建置系統來自動化建置、測試和部署流程的需求變得至關重要。但是哪些建置系統支援 Go 並增強其功能? Makefile:初始 Go 建置系統傳統上,Go 依賴與其原始碼發行...
    程式設計 發佈於2024-11-08
  • 如何在 JavaScript 中安全處理空值
    如何在 JavaScript 中安全處理空值
    JavaScript 中的空值檢查使用 JavaScript 時,正確處理「空」值至關重要。但是,標準空檢查可能並不總是按預期工作。讓我們探討原因並提供替代解決方案。 了解JavaScript 的Null Check在JavaScript 中,相等運算子(==) 和嚴格相等運算子(===)分別檢查值...
    程式設計 發佈於2024-11-08
  • 使用 AWS Lambda 為 Next.js 建置無伺服器後端
    使用 AWS Lambda 為 Next.js 建置無伺服器後端
    在不斷發展的 Web 開發世界中,利用無伺服器架構已經成為遊戲規則的改變者,尤其是對於 Next.js 應用程式而言。透過整合 AWS Lambda,開發人員可以建立可擴展且高效的後端,而無需管理伺服器的開銷。在這篇文章中,我們將探討如何使用 AWS Lambda 為您的 Next.js 應用程式...
    程式設計 發佈於2024-11-08
  • 當你開始學習程式語言時會發生什麼
    當你開始學習程式語言時會發生什麼
    在數位時代,學習程式語言不僅是一種優勢,而且是一種必要。無論您的目標是提升職業生涯、建立創新應用程序,還是只是更好地了解數位世界,程式設計技能都是不可或缺的。讓我們深入探討您應該踏上這趟變革之旅的原因和方法。 學習程式語言的重要性 職涯發展 根據美國勞工統計局的數據...
    程式設計 發佈於2024-11-08
  • 如何使用匿名結構或聯合編譯 C 程式碼?
    如何使用匿名結構或聯合編譯 C 程式碼?
    使用匿名結構/聯合編譯C 代碼出現了關於如何使用匿名結構或聯合編譯C 代碼的問題,如C 具有使用聯合的匿名欄位。在 C 中,嘗試使用包含匿名聯合的命名結構建立類似的結構會導致編譯錯誤。 錯誤訊息表示匿名聯合和結構欄位未在結構聲明中聲明。若要在 C 中啟用此功能,必須使用 -fms-extension...
    程式設計 發佈於2024-11-08
  • 如何使用 OpenSSL 和 C++ 產生 SHA256 雜湊值?
    如何使用 OpenSSL 和 C++ 產生 SHA256 雜湊值?
    使用 OpenSSL 和 C 產生 SHA256 雜湊 雜湊是一種加密技術,用於產生資料的唯一指紋或摘要。對於 SHA256(安全雜湊演算法 2,256 位元),此摘要是 256 位元十六進位字串。 SHA256 通常用於檢查資料完整性、驗證數位簽章和安全儲存密碼。 在本文中,我們將介紹如何使用 O...
    程式設計 發佈於2024-11-08

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

Copyright© 2022 湘ICP备2022001581号-3