คุณสามารถส่งผ่านอาร์กิวเมนต์ซึ่งจะช่วยให้คุณสามารถเลือกสี โค้ดด้านล่างนี้กำหนดพจนานุกรมเพื่อจับคู่สีเพชรของคุณกับสีที่ลงจุดplt.scatter
c
colors
import matplotlib.pyplot as plt
import pandas as pd
carat = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
price = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600]
color =['D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'G', 'G', 'G',]
df = pd.DataFrame(dict(carat=carat, price=price, color=color))
fig, ax = plt.subplots()
colors = {'D':'red', 'E':'blue', 'F':'green', 'G':'black'}
ax.scatter(df['carat'], df['price'], c=df['color'].apply(lambda x: colors[x]))
plt.show()
df['color'].apply(lambda x: colors[x])
แมปสีจาก "เพชร" ไปยัง "พล็อต" ได้อย่างมีประสิทธิภาพ
(ยกโทษให้ฉันที่ไม่ได้อัพรูปตัวอย่างอื่นฉันคิดว่า 2 ก็เพียงพอแล้ว: P)
ด้วย seaborn
คุณสามารถใช้seaborn
ซึ่งเป็นกระดาษห่อหุ้มmatplotlib
ที่ทำให้ดูสวยขึ้นโดยค่าเริ่มต้น (ฉันรู้ว่าเป็นไปตามความคิดเห็น: P) แต่ยังเพิ่มฟังก์ชันการพล็อตบางอย่าง
สำหรับสิ่งนี้คุณสามารถใช้seaborn.lmplot
กับfit_reg=False
(ซึ่งป้องกันไม่ให้ทำการถดถอยโดยอัตโนมัติ)
โค้ดด้านล่างใช้ชุดข้อมูลตัวอย่าง โดยการเลือกhue='color'
คุณบอกให้ซีบอร์นแบ่งดาต้าเฟรมของคุณตามสีของคุณจากนั้นจึงลงจุดแต่ละอัน
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
carat = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
price = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600]
color =['D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'G', 'G', 'G',]
df = pd.DataFrame(dict(carat=carat, price=price, color=color))
sns.lmplot('carat', 'price', data=df, hue='color', fit_reg=False)
plt.show()
โดยไม่ต้องseaborn
ใช้pandas.groupby
หากคุณไม่ต้องการใช้นกทะเลคุณสามารถใช้pandas.groupby
เพื่อให้ได้สีเพียงอย่างเดียวจากนั้นลงจุดโดยใช้เพียง matplotlib แต่คุณจะต้องกำหนดสีด้วยตนเองเมื่อคุณไปฉันได้เพิ่มตัวอย่างด้านล่าง:
fig, ax = plt.subplots()
colors = {'D':'red', 'E':'blue', 'F':'green', 'G':'black'}
grouped = df.groupby('color')
for key, group in grouped:
group.plot(ax=ax, kind='scatter', x='carat', y='price', label=key, color=colors[key])
plt.show()
รหัสนี้ถือว่า DataFrame color
เดียวกับข้างต้นแล้วกลุ่มมันขึ้นอยู่กับ จากนั้นจะวนซ้ำไปที่กลุ่มเหล่านี้โดยวางแผนสำหรับแต่ละกลุ่ม ในการเลือกสีฉันได้สร้างcolors
พจนานุกรมซึ่งสามารถจับคู่สีของเพชร (เช่นD
) กับสีจริง (เช่นred
)