Soalan:
Bagaimana saya boleh mencipta serakan dengan cekap plot menggunakan Pandas DataFrame, di mana penanda ditentukan oleh lajur ketiga dalam DataFrame?
Jawapan:
Menggunakan matplotlib.pyplot.scatter() untuk membezakan penanda mengikut kategori boleh menjadi tidak cekap. Sebaliknya, pertimbangkan untuk menggunakan matplotlib.pyplot.plot() untuk kategori diskret:
import matplotlib.pyplot as plt import numpy as np import pandas as pd # Generate Data num = 20 x, y = np.random.random((2, num)) labels = np.random.choice(['a', 'b', 'c'], num) df = pd.DataFrame(dict(x=x, y=y, label=labels)) # Group by labels groups = df.groupby('label') # Plot fig, ax = plt.subplots() ax.margins(0.05) # Optional padding # Use different markers and colors for each group for name, group in groups: ax.plot(group.x, group.y, marker='o', linestyle='', ms=12, label=name) ax.legend() # Specify custom colors and styles plt.rcParams.update(pd.tools.plotting.mpl_stylesheet) colors = pd.tools.plotting._get_standard_colors(len(groups), color_type='random') ax.set_color_cycle(colors) ax.legend(numpoints=1, loc='upper left') plt.show()
Kod ini menjana plot serakan dengan penanda berkod warna mengikut kategori.
Atas ialah kandungan terperinci Bagaimana untuk mencipta plot taburan dengan penanda yang dibezakan mengikut kategori dalam Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!