Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Menggunakan Matplotlib untuk Memplot Warna Berbeza untuk Pelbagai Tahap Kategori?

Bagaimanakah Saya Menggunakan Matplotlib untuk Memplot Warna Berbeza untuk Pelbagai Tahap Kategori?

DDD
DDDasal
2024-10-17 16:40:03423semak imbas

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

Cara Memplot Warna Berbeza untuk Tahap Kategori Berbeza dalam Python Hanya Menggunakan Matplotlib

Pengenalan

Artikel ini membincangkan cara mencipta plot serakan dalam Python menggunakan matplotlib, di mana setiap warna mewakili tahap kategori yang berbeza. Pendekatan ini mengelak daripada menggunakan pakej plot tambahan seperti seaborn dan ggplot untuk Python.

Dengan Matplotlib

Matplotlib menyediakan hujah c dalam plt.scatter, yang membenarkan penyesuaian warna. Berikut ialah contoh:

<code class="python">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()</code>

Fungsi peta(warna) memetakan warna "berlian" kepada warna "memplot".

Dengan seaborn

Walaupun artikel ini memfokuskan pada matplotlib, perlu dinyatakan bahawa seaborn juga menawarkan penyelesaian yang mudah:

<code class="python">import seaborn as sns

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

Dengan panda.DataFrame.groupby & panda.DataFrame.plot

Untuk pendekatan manual, anda boleh menggunakan panda untuk mengumpulkan mengikut warna dan memplot setiap kumpulan secara berasingan:

<code class="python">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()</code>

Ini mengandaikan DataFrame yang sama seperti sebelumnya dan memberikan warna secara manual semasa proses memplot.

Kesimpulan

Artikel ini telah menunjukkan cara memplot warna yang berbeza untuk tahap kategori yang berbeza dalam Python menggunakan matplotlib, bersama-sama dengan pilihan tambahan menggunakan seaborn dan pendekatan manual dengan panda.

Atas ialah kandungan terperinci Bagaimanakah Saya Menggunakan Matplotlib untuk Memplot Warna Berbeza untuk Pelbagai Tahap Kategori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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