2012-05-11 12 views
14

मैं आयत के रंग को कैसे सेट करूं उदाहरण के लिए matplotlib में? मैंने तर्क रंग का उपयोग करने की कोशिश की, लेकिन कोई सफलता नहीं मिली।मैटलप्लिब में आयत में रंग कैसे सेट करूं?

मैं कोड निम्नलिखित है:

fig=pylab.figure() 
ax=fig.add_subplot(111) 

pylab.xlim([-400, 400])  
pylab.ylim([-400, 400]) 
patches = [] 
polygon = Rectangle((-400, -400), 10, 10, color='y') 
patches.append(polygon) 

p = PatchCollection(patches, cmap=matplotlib.cm.jet) 
ax.add_collection(p) 
ax.xaxis.set_major_locator(MultipleLocator(20))  
ax.yaxis.set_major_locator(MultipleLocator(20))  

pylab.show() 

उत्तर

21

मैं अपने कोड काम करने के लिए नहीं मिल सकता है, लेकिन उम्मीद है कि इस में मदद मिलेगी:

import matplotlib 
import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = fig.add_subplot(111) 
rect1 = matplotlib.patches.Rectangle((-200,-100), 400, 200, color='yellow') 
rect2 = matplotlib.patches.Rectangle((0,150), 300, 20, color='red') 
rect3 = matplotlib.patches.Rectangle((-300,-50), 40, 200, color='#0099FF') 
circle1 = matplotlib.patches.Circle((-200,-250), radius=90, color='#EB70AA') 
ax.add_patch(rect1) 
ax.add_patch(rect2) 
ax.add_patch(rect3) 
ax.add_patch(circle1) 
plt.xlim([-400, 400]) 
plt.ylim([-400, 400]) 
plt.show() 

पैदा करता है: enter image description here

4

बाहर कर देता है, रंग विनिर्देशों के काम के लिए आपको ax.add_artist(Rectangle) करने की आवश्यकता है; patches.append(Rectangle) का उपयोग करते समय, आयताकार किसी भी रंग विनिर्देश को अनदेखा करते हुए नीले रंग में (मेरे पीसी पर, कम से कम) दिखाया जाता है।

Btw, ध्यान दें artists — Matplotlib 1.2.1 documentation: class matplotlib.patches.Rectangle कहा गया है कि है कि वहाँ

  • edgecolor - स्ट्रोक रंग
  • facecolor के लिए - रंग भरने के लिए

... और फिर वहाँ color है - जो मूल रूप से सेट दोनों स्ट्रोक और एक ही समय में रंग भरें।

matplotlib.png

:

import matplotlib.pyplot as plt 
import matplotlib.collections as collections 
import matplotlib.ticker as ticker 

import matplotlib 
print matplotlib.__version__ # 0.99.3 

fig=plt.figure() #pylab.figure() 
ax=fig.add_subplot(111) 

ax.set_xlim([-400, -380]) #pylab.xlim([-400, 400]) 
ax.set_ylim([-400, -380]) #pylab.ylim([-400, 400]) 
patches = [] 
polygon = plt.Rectangle((-400, -400), 10, 10, color='yellow') #Rectangle((-400, -400), 10, 10, color='y') 
patches.append(polygon) 

pol2 = plt.Rectangle((-390, -390), 10, 10, facecolor='yellow', edgecolor='violet', linewidth=2.0) 
ax.add_artist(pol2) 


p = collections.PatchCollection(patches) #, cmap=matplotlib.cm.jet) 
ax.add_collection(p) 
ax.xaxis.set_major_locator(ticker.MultipleLocator(20)) # (MultipleLocator(20)) 
ax.yaxis.set_major_locator(ticker.MultipleLocator(20)) # (MultipleLocator(20)) 

plt.show() #pylab.show() 

इस उत्पादन है:

यहाँ संशोधित ओपी कोड है, जो मैं लिनक्स (Ubuntu 11.04) पर परीक्षण किया है, अजगर 2.7, matplotlib 0.99.3 है

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