आप 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 पर्याप्त है: पी)
साथ में 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
रंगों को अकेले प्राप्त करने के लिए हैं और फिर उन्हें सिर्फ मैटलपोटलिब का उपयोग करके प्लॉट , लेकिन आपको मैन्युअल रूप से रंगों को असाइन करना होगा, मैंने नीचे एक उदाहरण जोड़ा है:
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
) के लिए मैप कर सकता है ।