दिलचस्प पोस्ट
फ़ायरफ़ॉक्स सत्र कुकीज़ मैं एंड्रॉइड डिवाइस के माउंटेड बाह्य संग्रहण की सूची कैसे प्राप्त करूं? विंडोज 10 वीं वर्षगांठ संस्करण में टच कीबोर्ड (टैबटीप। एक्सई) दिखाएं यूआरएल को लिंक्स में कन्वर्ट करने के लिए एक अच्छा रेगेक्स की आवश्यकता है, लेकिन अकेले मौजूदा लिंक को छोड़ दें संपादन टेक्स्ट, बाहर संपर्क पर स्पष्ट ध्यान एक सामान्य वर्ग में स्थैतिक विधि? फ़्रेम-बाय-फ़्रेम एनीमेशन प्रारंभ करना क्यों यह विभाजन पायथन में काम नहीं करता है? कैसे मेरी क्लिप-पथ में सीमा जोड़ने के लिए: बहुभुज (); सीएसएस शैली Fancybox2 – टूलटिप और छवि शीर्षक के लिए अलग-अलग सामग्री, दोनों शीर्षक विशेषता से? लॉगिन उपयोगकर्ता 'आईआईएस APPPOOL \ ASP.NET v4.0' के लिए विफल हुआ ई -6 में वस्तु से कुछ गुण लेने के लिए एक-लाइनर क्या टीसीपी / आईपी रीसेट (आरएसटी) ध्वज भेजा जा सकता है? उपयोगकर्ता की दस्तावेज़ निर्देशिका को iPhone पर ढूंढने का सबसे अच्छा तरीका क्या है? Printf में "%। * S" क्या होता है?

पांडस / पाप्लोट में स्कैटर प्लॉट: श्रेणी के अनुसार कैसे साजिश की जाए

मैं पेंडोट डेटाफ्रेम ऑब्जेक्ट का उपयोग करके पाइपोट में एक सरल स्कैटर प्लॉट बनाने की कोशिश कर रहा हूं, लेकिन दो चर को साजिश करने का एक कुशल तरीका चाहता हूं, लेकिन एक तीसरे कॉलम (कुंजी) द्वारा चिन्हित प्रतीक हैं। मैंने df.groupby के माध्यम से विभिन्न तरीकों की कोशिश की है, लेकिन सफलतापूर्वक नहीं। एक नमूना डीएफ स्क्रिप्ट नीचे है यह रंग 'कुंजी 1' के अनुसार मार्कर है, लेकिन आईडी 'की 1' श्रेणियों के साथ एक किंवदंती देखना चाहता है। क्या मैं बंद हूँ? धन्यवाद।

import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.normal(10,1,30).reshape(10,3), index = pd.date_range('2010-01-01', freq = 'M', periods = 10), columns = ('one', 'two', 'three')) df['key1'] = (4,4,4,6,6,6,8,8,8,8) fig1 = plt.figure(1) ax1 = fig1.add_subplot(111) ax1.scatter(df['one'], df['two'], marker = 'o', c = df['key1'], alpha = 0.8) plt.show() 

वेब के समाधान से एकत्रित समाधान "पांडस / पाप्लोट में स्कैटर प्लॉट: श्रेणी के अनुसार कैसे साजिश की जाए"

आप इस के लिए scatter उपयोग कर सकते हैं, लेकिन आपके key1 लिए संख्यात्मक मान होने की आवश्यकता है, और जैसा कि आपके ध्यान में है, आपको एक किंवदंती नहीं होगी।

इस तरह असतत श्रेणियों के लिए केवल plot उपयोग करना बेहतर है I उदाहरण के लिए:

 import matplotlib.pyplot as plt import numpy as np import pandas as pd np.random.seed(1974) # 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)) groups = df.groupby('label') # Plot fig, ax = plt.subplots() ax.margins(0.05) # Optional, just adds 5% padding to the autoscaling for name, group in groups: ax.plot(group.x, group.y, marker='o', linestyle='', ms=12, label=name) ax.legend() plt.show() 

यहां छवि विवरण दर्ज करें

यदि आप चीजों को डिफ़ॉल्ट pandas शैली की तरह rcParams चाहते हैं, तो केवल rcParams स्टाइलशीट के साथ rcParams अपडेट करें और अपने रंग जनरेटर का उपयोग करें (मैं भी किंवदंती थोड़ा tweaking रहा हूँ):

 import matplotlib.pyplot as plt import numpy as np import pandas as pd np.random.seed(1974) # 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)) groups = df.groupby('label') # Plot plt.rcParams.update(pd.tools.plotting.mpl_stylesheet) colors = pd.tools.plotting._get_standard_colors(len(groups), color_type='random') fig, ax = plt.subplots() ax.set_color_cycle(colors) ax.margins(0.05) for name, group in groups: ax.plot(group.x, group.y, marker='o', linestyle='', ms=12, label=name) ax.legend(numpoints=1, loc='upper left') plt.show() 

यहां छवि विवरण दर्ज करें

plt.scatter साथ, मैं केवल एक के बारे में सोच सकता हूँ: एक प्रॉक्सी कलाकार का उपयोग करने के लिए:

 df = pd.DataFrame(np.random.normal(10,1,30).reshape(10,3), index = pd.date_range('2010-01-01', freq = 'M', periods = 10), columns = ('one', 'two', 'three')) df['key1'] = (4,4,4,6,6,6,8,8,8,8) fig1 = plt.figure(1) ax1 = fig1.add_subplot(111) x=ax1.scatter(df['one'], df['two'], marker = 'o', c = df['key1'], alpha = 0.8) ccm=x.get_cmap() circles=[Line2D(range(1), range(1), color='w', marker='o', markersize=10, markerfacecolor=item) for item in ccm((array([4,6,8])-4.0)/4)] leg = plt.legend(circles, ['4','6','8'], loc = "center left", bbox_to_anchor = (1, 0.5), numpoints = 1) 

और इसका परिणाम है:

यहां छवि विवरण दर्ज करें

pip install seaborn साथ ऐसा करना सरल है ( pip install seaborn ) एक यात्री के रूप में

sns.pairplot(x_vars=["one"], y_vars=["two"], data=df, hue="key1", size=5) :

 import seaborn as sns import pandas as pd import numpy as np np.random.seed(1974) df = pd.DataFrame( np.random.normal(10, 1, 30).reshape(10, 3), index=pd.date_range('2010-01-01', freq='M', periods=10), columns=('one', 'two', 'three')) df['key1'] = (4, 4, 4, 6, 6, 6, 8, 8, 8, 8) sns.pairplot(x_vars=["one"], y_vars=["two"], data=df, hue="key1", size=5) 

यहां छवि विवरण दर्ज करें

संदर्भ के लिए यहां डेटाफ़्रेम है:

यहां छवि विवरण दर्ज करें

चूंकि आपके पास अपने डेटा में तीन चर कॉलम हैं, इसलिए आप सभी जोड़ों के आयामों को साजिश करना चाह सकते हैं:

 sns.pairplot(vars=["one","two","three"], data=df, hue="key1", size=5) 

यहां छवि विवरण दर्ज करें

आप df.plot.scatter का उपयोग कर सकते हैं, और प्रत्येक बिंदु के रंग को परिभाषित करने के लिए c = तर्क के लिए एक सरणी को पारित कर सकते हैं:

 import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.normal(10,1,30).reshape(10,3), index = pd.date_range('2010-01-01', freq = 'M', periods = 10), columns = ('one', 'two', 'three')) df['key1'] = (4,4,4,6,6,6,8,8,8,8) colors = np.where(df["key1"]==4,'r','-') colors[df["key1"]==6] = 'g' colors[df["key1"]==8] = 'b' print(colors) df.plot.scatter(x="one",y="two",c=colors) plt.show() 

यहां छवि विवरण दर्ज करें

आप अल्टेटेर या जीगटॉट भी देख सकते हैं जो कि घोषणात्मक विज़ुअलाइज़ेशन पर केंद्रित हैं।

 import numpy as np import pandas as pd np.random.seed(1974) # 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)) 

अल्टेयर कोड

 from altair import Chart c = Chart(df) c.mark_circle().encode(x='x', y='y', color='label') 

यहां छवि विवरण दर्ज करें

ggplot कोड

 from ggplot import * ggplot(aes(x='x', y='y', color='label'), data=df) +\ geom_point(size=50) +\ theme_bw() 

यहां छवि विवरण दर्ज करें

यह बल्कि हैमी है, लेकिन एक Float64Index में सब कुछ करने के लिए आप एक 1 Float64Index one1 रूप में उपयोग कर सकते हैं:

 df.set_index('one').sort_index().groupby('key1')['two'].plot(style='--o', legend=True) 

यहां छवि विवरण दर्ज करें

ध्यान दें कि 0.20.3 के रूप में, सूचकांक जरूरी है , और किंवदंती थोड़ी चोंचदार है ।