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>
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>
Jawapan Lama (2015)
Jika anda ingin menggunakan Matplotlib secara langsung, anda perlu memetakan matplotlib's fungsi taburan ke kategori Pandas DataFrame. Untuk melakukan ini:
<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>
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!