में पिक्सेल मानों के आधार पर पारदर्शिता सेट करना मैं एक पेपर के लिए कुछ आंकड़े प्लॉट करने के लिए मैटलप्लिब का उपयोग करने का प्रयास कर रहा हूं। मैं 2 डी NumPy सरणी में डेटा के दो सेट है: एक ASCII hillshade रेखापुंज जो मैं खुशी से साजिश और का उपयोग कर ठीक कर सकते हैं:Matplotlib
import matplotlib.pyplot as pp
import numpy as np
hillshade = np.genfromtxt('hs.asc', delimiter=' ', skip_header=6)[:,:-1]
pp.imshow(hillshade, vmin=0, vmax=255)
pp.gray()
pp.show()
कौन देता है:
और एक दूसरे ascii रेखापुंज जो रूपरेखा परिदृश्य में बहने वाली नदी के गुण। इस डेटा को उपर्युक्त तरीके से प्लॉट किया जा सकता है, हालांकि सरणी में मान जो नदी नेटवर्क से मेल नहीं खाते हैं, को 99 99 का डेटा मान नहीं दिया जाता है। इसका उद्देश्य यह है कि कोई डेटा मान पारदर्शी होने के लिए सेट न हो ताकि नदी के मूल्य पहाड़ी छाया को खत्म कर दें।
यह नदी डेटा है, आदर्श रूप से 0 के रूप में प्रतिनिधित्व हर पिक्सेल पूरी तरह से पारदर्शी होगा।
ऐसा लगता है मैं एक RGBA सरणी में अपने डेटा को बदलने और अवांछित कोशिकाओं को पारदर्शी बनाने के लिए ही अल्फा मूल्यों को निर्धारित करने में सक्षम हो सकता है इस पर कुछ शोध किया करने के बाद। हालांकि, नदी सरणी में मान फ़्लोट होते हैं और इन्हें परिवर्तित नहीं किया जा सकता है (क्योंकि मूल मान आकृति का पूरा बिंदु हैं) और मेरा मानना है कि imshow
फ़ंक्शन केवल आरजीबीए प्रारूप का उपयोग करते हुए हस्ताक्षरित पूर्णांक ले सकता है।
क्या इस सीमा के आसपास कोई रास्ता है? मैंने आशा की थी कि मैं बस पिक्सेल मान और अल्फा मूल्य के साथ एक टुपल बना सकता हूं और उन्हें इस तरह साजिश कर सकता हूं, लेकिन ऐसा प्रतीत नहीं होता है।
मेरे पास डेटा डेटा की पीएनजी फ़ाइल बनाने के प्रयास के लिए PIL
के साथ एक नाटक भी है, डेटा डेटा पारदर्शी के साथ, हालांकि यह स्वचालित रूप से पिक्सेल मानों को 0-255 पर स्केल करने लगता है, जिससे मुझे आवश्यक मूल्यों को खोना पड़ता है सम्भाल कर रखना।
मैं इस समस्या पर किसी भी अंतर्दृष्टि का स्वागत करता हूं।
शानदार साथ
clim
का समायोजन करके अपनी सीमा बदल सकते हैं! धन्यवाद। मैंने इस तरह के एक सुरुचिपूर्ण समाधान की उम्मीद की थी, लेकिन स्पष्ट रूप से गलत पेड़ को भौंकने वाला था। – sgrieveक्या यह 2 सरणी तक सीमित है या यह 3 या उससे अधिक के साथ काम करेगा? – MyCarta
@ माईकार्टा - यह जितना चाहें उतने एरे के साथ काम करेगा, लेकिन आपका मुखौटा अभिव्यक्ति जटिल हो सकता है। Numpy arrays के साथ बूलियन अभिव्यक्तियों को गठबंधन करने के लिए, आपको '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'के बजाय' '' '' '' '' '' '' '' और (बी> 5) '' 5> और बी> 5' के बजाय। आप ऑपरेटरों को भी उसी तरह से श्रृंखलाबद्ध नहीं कर सकते हैं, उदा। आपको '2> x> 5' के बजाय' (x> 2) और (x <5) 'की आवश्यकता है। –