2016-06-16 18 views
5

में एक रेखा ग्राफ को बंद करने के लिए कैसे करें मेरी चुनौती कॉलम में व्यवस्थित डेटा के कई अनुक्रमों को साजिश करना है (जहां प्रत्येक कॉलम एक ही पहचानकर्ता (आईडी) के लिए कई सिमुलेशन के लिए डेटा है) और सूचकांक पांडा डेटाफ्रेम अनुकरण के महीने है। समस्या उसी कॉलम में विभिन्न सिमुलेशन को जोड़ने वाले पांडा द्वारा बनाई गई रेखा में है।साजिश पांडा या matplotlib पायथन

उदाहरण को देखें जो समस्या को पुन: उत्पन्न करता है। मैं इसे कैसे ठीक कर सकता हूं?

# import library 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

# create da dataset 
columns = ['A','B'] 
data = np.array([np.random.randint(10, size=15), 
      np.random.randint(10, size=15)]).T 
index = list(range(0,5))*3 
dataset = pd.DataFrame(data, index=index, columns=columns) 

# plotting 
plot_data = dataset.plot(title='Example StackOverflow') 
plot_data.set_xlabel('Years') 
plot_data.set_ylabel('Values') 
plot_data.legend(loc='best', ncol=4, fancybox=True, shadow=True) 
plot_data.set_axis_bgcolor('w') 
fig = plot_data.get_figure() 
fig.savefig('example_figure_stackoverflow.png', dpi=400) 

परिणाम

Plot result as the problem of linking lines

उत्तर

1
यहाँ

एक समाधान है कि सीधे का उपयोग करता matplotlib:।

# code until "plotting" same as question 

# plotting 
simlen = 5 
for c in columns: 
    for i in range(0, len(index), simlen): 
    plt.plot(index[i:i+simlen], dataset[i:i+simlen][c], 
     color=dict(A='b', B='g')[c], 
     label=c if i == 0 else None) 
plt.legend() 
plt.show() 

(मैं एक सिमुलेशन ग्रहण लंबाई 5 है, जो अपने प्रश्न में स्पष्ट नहीं था है नोट कि डेटा को अलग-अलग संरचित किया जा सकता है क्योंकि पांडों का अब साजिश के लिए उपयोग नहीं किया जाता है।)

यहां आउटपुट: sample figure

संबंधित मुद्दे