मैं बस scipy
स्टैक से शुरू कर रहा हूं। मैं एक सीएसवी संस्करण में आईरिस डेटासेट का उपयोग कर रहा हूं। मैं का उपयोग कर इसे ठीक लोड कर सकते हैं:पिलैब: रंगों के लिए लेबल लेबल
iris=numpy.recfromcsv("iris.csv")
और यह साजिश:
pylab.scatter(iris.field(0), iris.field(1))
pylab.show()
अब मैं भी कक्षाएं, जो iris.field(4)
में जमा हो जाती प्लॉट करने के लिए करना चाहते हैं:
chararray(['setosa', ...], dtype='|S10')
साजिश के लिए इन तारों को रंगों में मैप करने का एक शानदार तरीका क्या है? scatter(iris.field(0), iris.field(1), c=iris.field(4))
काम नहीं करता है (उन दस्तावेज़ों से जो फ्लोट वैल्यू या कॉलमैप की अपेक्षा करते हैं)। मुझे स्वचालित रूप से रंगीन नक्शा उत्पन्न करने का एक शानदार तरीका नहीं मिला है।
cols = {"versicolor": "blue", "virginica": "green", "setosa": "red"}
scatter(iris.field(0), iris.field(1), c=map(lambda x:cols[x], iris.field(4)))
लगभग करता है जो मैं चाहता हूँ, लेकिन मैं मैनुअल रंग विनिर्देश बहुत ज्यादा पसंद नहीं है।
संपादित: अंतिम पंक्ति के थोड़ा और अधिक सुरुचिपूर्ण संस्करण: एक तरह से खूबसूरत है या नहीं
scatter(iris.field(0), iris.field(1), c=map(cols.get, iris.field(4)))
धन्यवाद। मैंने बहु-साजिश का विकल्प देखा, लेकिन मुझे अभी तक उपयोग की जाने वाली सुरुचिपूर्ण हालत चाल के बारे में पता नहीं था (+1)। मुझे 'स्कैटर' के बारे में असहमत होना है। मेरी समझ के लिए यह बिल्कुल इस तरह के भूखंडों के लिए है, जहां अंक स्वतंत्र हैं और कनेक्ट नहीं हैं (जो आप 'linestyle = "none" ' –
सेट करके चारों ओर काम करते हैं' प्लॉट' बनाम 'स्कैटर' बिंदु दुर्भाग्यपूर्ण है और सामान्य गलतफहमी। प्वाइंट प्वाइंट्स के लिए 'प्लॉट' का उपयोग करें, और केवल तीसरे या चौथे चर के आधार पर मार्करों के आकार और/या रंग को बदलने की आवश्यकता होने पर चीजों को साजिश करने के लिए 'स्कैटर' का उपयोग करें। 'स्कैटर' एक संग्रह देता है जो प्रबंधन के लिए बहुत कठिन है। 'साजिश' _really is_ डिस्कनेक्ट किए गए बिंदुओं को साजिश करने का इरादा है, डिफ़ॉल्ट सिर्फ एक रेखा होती है। यदि आप अधिक संक्षिप्त कॉल चाहते हैं, तो 'plt.plot (x, y,' o ') 'plt.plot (x, y, linestyle =' none ', marker =' o ') जैसी ही चीज़ करेगा। । –
धन्यवाद। मैं 'np.unique (iris.field (4)) का उपयोग करता हूं '(क्योंकि मेरे सीएसवी में कोलम लेबल पंक्ति नहीं है)। लेकिन इसके अलावा अब मैं अनिवार्य रूप से आपके कोड का उपयोग कर रहा हूं। मुझे वास्तव में हालत की चाल पसंद है। –