2012-02-04 17 views
6

आम तौर पर अक्ष, मैं जानने के लिए कि matplotlib वास्तव में इस क्षमता है कोशिश कर रहा हूँ।साथ एक एक्स-वाई ग्राफ Ploting "चार"

मैं एक गति मील प्रति घंटे बनाम में (एक्स अक्ष पर) बिजली (y अक्ष पर) किलोवाट ग्राफ में है, जो मैं (दूसरी पर एक रोटेशन जोड़ने की जरूरत के लिए y अक्ष, सही) और एक अन्य गति (दूसरा एक्स अक्ष पर, किमी में शीर्ष पर तक)/एच करने के लिए।

केडब्ल्यू में पावर एमएफ में गति के साथ सहसंबंध में है, जबकि रोटेशन पावर के साथ सहसंबंध में है, और दूसरी गति (दूसरे एक्स अक्ष पर) केवल पहली गति एक कनवर्शन गुणांक के साथ गुणा है।

तो, मेरा सवाल यह है कि - मैं दो एक्स और दो वाई अक्ष के साथ matplotlib में एक्स-वाई प्लॉट कैसे प्लॉट कर सकता हूं?

+0

@DNA - ठीक है, अगर तुम चाहते हो तुम * * गति के साथ सहसंबंध में रोटेशन कर सकता है, लेकिन आमतौर पर नहीं किया जाता है। रोटेशन हमेशा बिजली के सहसंबंध में प्रस्तुत किए जाते हैं। यह उद्योग सम्मेलन है, जो अब दशकों से इस तरह से रहा है। तो यह तकनीकी रूप से स्वतंत्र नहीं है, जैसा कि आपने इसे रखा है, लेकिन व्यावहारिक रूप से, हां। – Rook

+0

यदि मैं सही समझता हूं, तो आप दो एक्स-अक्ष चाहते हैं ताकि आप विभिन्न इकाइयों में गति दिखा सकें - ठीक है। आप दो वाई axes चाहते हैं, तो आप दोनों घूर्णन और शक्ति दिखा सकते हैं - लेकिन क्या आप मानते हैं कि शक्ति रोटेशन गति के लिए आनुपातिक आनुपातिक है? यह किसी भी वास्तविक प्रणाली में सच नहीं है। – DNA

+0

ओह, मुझे लगता है कि आप आउटपुट पावर (कुछ का?) मतलब है। ठीक है, अब समझ में आता है! – DNA

उत्तर

7

twinx और twiny के लिए खोज रहे हैं?

import matplotlib.pyplot as plt 
x = range(1,21) 
plt.xlabel('1st X') 
plt.ylabel('1st Y') 
plt.plot(x,x,'r') # against 1st x, 1st y 
plt.axis([0,50,0,25]) 
plt.twinx() 
plt.ylabel('2nd Y') 
plt.plot(x,x,'g') # against 1st x, 2nd y 
plt.axis([0,50,0,20]) 
plt.twiny() 
plt.xlabel('2nd X') 
plt.plot(x,x,'b') # against 2nd x, 2nd y 
plt.axis([0,10,0,20]) 
plt.show() 

enter image description here

4

मेरे क्षमायाचना, मैं गलत समझा।

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib.axes import Axes 

rect = 0.1, 0.1, 0.8, 0.8 

fig = plt.figure() 
ax1 = fig.add_axes(rect) 

t = np.arange(0.01, 10.0, 0.01) 

ax1.plot(t, np.exp(t), 'b-') # Put your speed/power plot here 
ax1.set_xlabel('Speed (mph)', color='b') 
ax1.set_ylabel('Power', color='b') 

ax2 = fig.add_axes(rect, frameon=False) 
ax2.yaxis.tick_right() 
ax2.yaxis.set_label_position('right') 
ax2.xaxis.tick_top() 
ax2.xaxis.set_label_position('top') 

ax2.plot(t, np.sin(2*np.pi*t), 'r-') # Put your speed/rotation plot here 
ax2.set_xlabel('Speed (kmph)', color='r') 
ax2.set_ylabel('Rotations', color='r') 

plt.show() 

enter image description here

+0

तुम भी इस्तेमाल किया जा सकता था 'अंजीर, (AX1, AX2) = plt.subplots (2)' बजाय अलग से 'fig',' ax1', 'ax2' के निर्माण की। –

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