दिलचस्प पोस्ट
पेपरक्लिप में डिफ़ॉल्ट_अर्नल संपत्ति पाइपलाइन अपग्रेड के साथ तोड़ दिया मेवेन परियोजना को ग्रहण में आयात करना Parfor का उपयोग कर समय और स्मृति की बचत? jquery एचटीएमएल 5 डेटा हाइफ़न और केस संवेदनशीलता के साथ गुण प्राप्त Numpy dtypes को मूल अजगर प्रकारों में परिवर्तित करना JSON को PHP ऑब्जेक्ट को सीरियल करना जावास्क्रिप्ट – सभी वैश्विक चर डंपिंग Google स्प्रेडशीट दिनांक को जेएस दिनांक ऑब्जेक्ट में परिवर्तित करना? 2 फ़ील्ड का उपयोग करने वाली कांगो कस्टम सत्यापन फोनगैप InAppBrowser प्रदर्शन पीडीएफ 2.7.0 सी popen stderr पकड़ नहीं होगा कैसे एक अलग पहचान के तहत iisexpress अनुप्रयोग पूल चलाने के लिए मेरेएसकल में "इन" खंड में एक चयन कथन में मानों के क्रम से क्रमबद्ध करें सीएसएस ग्रिड के लिए ब्राउज़र समर्थन अजगर पांडा के साथ कई कॉलम में चयन करना?

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

मैं पेंडोट डेटाफ्रेम ऑब्जेक्ट का उपयोग करके पाइपोट में एक सरल स्कैटर प्लॉट बनाने की कोशिश कर रहा हूं, लेकिन दो चर को साजिश करने का एक कुशल तरीका चाहता हूं, लेकिन एक तीसरे कॉलम (कुंजी) द्वारा चिन्हित प्रतीक हैं। मैंने 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() 

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

आप इस के लिए 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 के रूप में, सूचकांक जरूरी है , और किंवदंती थोड़ी चोंचदार है ।