मैं पांडा डेटाफ़्रेम में कुछ डेटा संग्रहीत कर रहा हूँ। साथ ही, मैं डेटा दिखाने वाले प्लॉट बनाने के लिए matplotlib का उपयोग कर रहा हूं। कृपया इस खूबसूरत तस्वीर को देखें:

plot I want

लाल रेखा x अक्ष बिंदुओं के अनुरूप कुछ मान दिखाती है। यह डेटाफ्रेम में सिर्फ एक कॉलम है। मैं एक्स अक्ष बिंदुओं को वर्गीकृत करते हुए अतिरिक्त एनोटेशन जोड़ना चाहता हूं। उन श्रेणियों को मूल डेटाफ़्रेम में अतिरिक्त कॉलम के रूप में संग्रहीत किया जाता है। जरूरी नहीं कि यह तस्वीर में बिल्कुल जैसा दिख रहा हो।

लक्ष्य किसी भी तरह एक्स अक्ष श्रेणी वर्गीकरण दिखाना है। ऐसी टिप्पणी जोड़ने का एक स्मार्ट और सुरुचिपूर्ण तरीका क्या है?

4
michal_2am 18 जुलाई 2017, 17:07
डेटाफ़्रेम उन श्रेणियों को कैसे निर्दिष्ट करता है जिन्हें चिह्नित किया जाना चाहिए?
 – 
ImportanceOfBeingErnest
18 जुलाई 2017, 17:51
मानों के साथ एक कॉलम है जैसे ['a', 'a', NaN, 'a', 'b' .... ] इसलिए प्रत्येक इंडेक्स में एक संबंधित श्रेणी होती है।
 – 
michal_2am
18 जुलाई 2017, 18:02

1 उत्तर

सबसे बढ़िया उत्तर
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Create sample data
df = pd.DataFrame({'Data': [np.sin(i) + 3 for i in np.arange(1, 11, 0.1)],
                   'Annotation': ['A'] * 10 + ['B'] * 20 + [np.nan] * 10 +
                                 ['C'] * 10 + ['D'] * 10 + [np.nan] * 20 +
                                 ['D'] * 20})
# Get unique annotations
annotation_symbols = [i for i in df['Annotation'].unique() if not pd.isnull(i)]
# Transform each unique text annotation into a new column,
# where ones represent the corresponding annotation being 'active' and
# NaNs represent the corresponding annotation being 'inactive'
df = pd.concat([df, pd.get_dummies(df['Annotation']).replace(0, np.nan)])

plt.style.use('ggplot')  # Let's use nicer style
ax = plt.figure(figsize=(7, 5)).add_subplot(111)
df.plot.line(x=df.index, y='Data', ax=ax)
df.plot.line(x=df.index, y=annotation_symbols, ax=ax)

उत्पादित आंकड़ा:

enter image description here

3
tuomastik 18 जुलाई 2017, 18:47