2013-05-24 8 views
8

मैं matplotlib, और उदाहरण कोड है कि मैं पर काम कर रहा हूँ के लिए बुनियादी ट्यूटोरियल के माध्यम से चलने के लिए कर रहा हूँ जिसका अर्थ है = है:matplotlib 2d लाइन लाइन, साजिश अल्पविराम

import numpy as np 

import matplotlib.pylab as plt 

x=[1,2,3,4] 
y=[5,6,7,8] 

line, = plt.plot(x,y,'-') 

plt.show() 

किसी को भी पता है क्या लाइन के बाद अल्पविराम (line,=plt.plot(x,y,'-')) का मतलब है? मैंने सोचा कि यह एक टाइपो था लेकिन स्पष्ट रूप से पूरा कोड काम नहीं करता अगर मैं अल्पविराम छोड़ देता हूं।

+0

क्या आप कृपया उत्तर स्वीकार कर सकते हैं? (बाईं ओर बड़ा ग्रे चेकबॉक्स) – tacaswell

उत्तर

9

plt.plotLine2D ऑब्जेक्ट्स की एक सूची देता है, भले ही आप केवल एक पंक्ति प्लॉट करें।

वह कॉमा line में एकल मान को अनपॅक कर रहा है।

पूर्व

a, b = [1, 2] 
a, = [1, ] 
4

plot विधि वस्तुओं है कि एक सूची के रूप में साजिश में प्रत्येक पंक्ति के बारे में जानकारी देता है। पायथन में, आप एक सूची के तत्वों को अल्पविराम के साथ विस्तारित कर सकते हैं। उदाहरण के लिए, यदि आप दो पंक्तियों साजिश रची, आप क्या करेंगे:

line1, line2 = plt.plot(x,y,'-',x,z,':') 

line1 कहाँ x,y के अनुरूप होता है, और पंक्ति 2 x,z से मेल खाती है। आपके उदाहरण में, केवल एक पंक्ति है, इसलिए आपको 1-तत्व सूची का विस्तार करने के लिए इसे कहने के लिए अल्पविराम की आवश्यकता है। क्या आपके पास

line = plt.plot(x,y,'-')[0] 

या

line = ply.plot(x,y,'-') 
line = line[0] 

अगर आप अल्पविराम छोड़ आपका कोड, काम करना चाहिए के बराबर ही है क्योंकि आप line उपयोग नहीं कर रहे है। आपके सरल उदाहरण में plt.plot(x,y,'-') पर्याप्त होगा।

+0

यह 'tuple' – tacaswell

+0

@tcaswell ठीक नहीं है, लेकिन यह – SethMMorton

+0

नहीं उत्तर देता है, लेकिन वास्तव में कुछ गलत लिखने का कोई कारण नहीं है। यदि आप लौटे 'Line2D' ऑब्जेक्ट्स की सूची के साथ कुछ फैनसीयर करना चाहते हैं तो यह अन्य मामलों में महत्वपूर्ण हो सकता है। – tacaswell

2

फ़ंक्शन का वापसी मूल्य एक आइटम युक्त एक टुपल या सूची है, और यह वाक्यविन्यास एक सरल चर में tuple/list के मान को "अनपैक" करता है।

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