2012-10-03 14 views
5

मैंने वास्तव में ऐसा करने का कोई प्रयास नहीं किया है, लेकिन मुझे आश्चर्य है कि क्या दो प्लॉट मर्ज करने का कोई तरीका है जो पहले से ही एक ग्राफ में मौजूद है। कोई भी इनपुट बहुत प्रंशसनीय होगा!दो मौजूदा भूखंडों को एक प्लॉट में मर्ज करें

+0

क्या साजिश रचने पुस्तकालय आप उपयोग कर रहे हैं? किस तरह के भूखंड? कृपया अधिक जानकारी प्रदान करें। – Gareth

+0

@ गैरेथ लाइब्रेरी सबसे अधिक संभावना matplotlib होगा, और प्रश्न में दो ग्राफ नियमित रूप से लाइन प्लॉट्स के साथ-साथ हिस्टोग्राम भी होते हैं। वे समान दिखते हैं, और समान अक्ष होते हैं, हालांकि उनके पास x-axis पर अलग-अलग दिनांक सीमा होती है। – user1620716

+0

क्या आप दो पहले से मौजूद प्लॉट्स के _डेटा_ को मर्ज करना चाहते हैं? लाल रेखा में एक रेखा साजिश और नीले रंग में एक और कहें - उदाहरण के तौर पर आप दो डेटासेट के हरे रंग में एक नई साजिश देखना चाहते हैं? (हम कुछ अजीब कारणों के लिए मान रहे हैं कि आपके पास मूल डेटा तक पहुंच नहीं है?) – Hooked

उत्तर

3

यहां एक संपूर्ण न्यूनतम काम कर उदाहरण है कि सभी कदम आप को निकालने के लिए की जरूरत माध्यम से चला जाता है और एकाधिक भूखंडों से डेटा गठबंधन।

import numpy as np 
import pylab as plt 

# Create some test data 
secret_data_X1 = np.linspace(0,1,100) 
secret_data_Y1 = secret_data_X1**2 
secret_data_X2 = np.linspace(1,2,100) 
secret_data_Y2 = secret_data_X2**2 

# Show the secret data 
plt.subplot(2,1,1) 
plt.plot(secret_data_X1,secret_data_Y1,'r') 
plt.plot(secret_data_X2,secret_data_Y2,'b') 

# Loop through the plots created and find the x,y values 
X,Y = [], [] 
for lines in plt.gca().get_lines(): 
    for x,y in lines.get_xydata(): 
     X.append(x) 
     Y.append(y) 

# If you are doing a line plot, we don't know if the x values are 
# sequential, we sort based off the x-values 
idx = np.argsort(X) 
X = np.array(X)[idx] 
Y = np.array(Y)[idx] 

plt.subplot(2,1,2) 
plt.plot(X,Y,'g') 
plt.show() 

enter image description here

+0

यह लगभग वही है जो मैं ढूंढ रहा हूं! मैं इसे आज़मा दूंगा। – user1620716

1

मान लिया जाये कि आप matplotlib उपयोग कर रहे हैं, तो आप ऐसा तरह एक NX2 numpy सरणी के रूप में एक आंकड़ा के लिए डेटा प्राप्त कर सकते हैं:

gca().get_lines()[n].get_xydata() 
संबंधित मुद्दे