Rumah > pembangunan bahagian belakang > Tutorial Python > Bolehkah Anda Mewarnakan Plot Taburan Berdasarkan Nilai Lajur Tertentu dalam Panda dengan Matplotlib?

Bolehkah Anda Mewarnakan Plot Taburan Berdasarkan Nilai Lajur Tertentu dalam Panda dengan Matplotlib?

Barbara Streisand
Lepaskan: 2024-10-19 14:50:02
asal
849 orang telah melayarinya

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

Mewarnai Plot Taburan mengikut Nilai Lajur Menggunakan Panda dan Matplotlib

Matplotlib ialah perpustakaan Python yang popular untuk mencipta visualisasi statik, animasi dan interaktif dalam Ular sawa. Artikel ini meneroka menggunakan Matplotlib untuk mewarna plot taburan berdasarkan nilai dalam lajur tertentu Pandas DataFrame.

Import dan Data

Untuk bermula, kami mengimport perpustakaan yang diperlukan , termasuk Matplotlib (sebagai plt) dan Pandas (sebagai pd). Kami juga menjana sampel DataFrame ("df") dengan tiga lajur: "Ketinggian," "Berat" dan "Jantina."

<code class="python">import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})</code>
Salin selepas log masuk

Dikemas kini pada Ogos 2021

Seaborn telah memperkenalkan fungsi aras angka baharu, seperti seaborn.replot dalam versi 0.11.0. Fungsi ini disyorkan daripada menggunakan FacetGrid secara langsung.

<code class="python">sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()</code>
Salin selepas log masuk

Jawapan Lama (2015)

Jika anda ingin menggunakan Matplotlib secara langsung, anda perlu memetakan matplotlib's fungsi taburan ke kategori Pandas DataFrame. Untuk melakukan ini:

  • Buat kamus dengan kategori unik daripada lajur dan warna.
  • Tambah lajur "Warna" baharu pada DataFrame, memperuntukkan setiap kategori warna yang sepadan.
  • Gunakan fungsi serakan untuk memplot data, menyatakan lajur warna sebagai hujah "c".
<code class="python">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

fig = dfScatter(df)
fig.savefig('fig1.png')</code>
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh mewarnakan plot serakan dengan mudah berdasarkan nilai lajur menggunakan Panda dan Matplotlib.

Atas ialah kandungan terperinci Bolehkah Anda Mewarnakan Plot Taburan Berdasarkan Nilai Lajur Tertentu dalam Panda dengan Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan