How do I set color to Rectangle for example in matplotlib? I tried using argument color, but had no success.
I have following code:
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()
To shade an area parallel to X-axis, initialize two variables, y1 and y2. To add horizontal span across the axes, use axhspan() method with y1, y2, green as shade color,and alpha for transprency of the shade. To display the figure, use show() method.
I couldn't get your code to work, but hopefully this will help:
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()
produces:
Turns out, you need to do ax.add_artist(Rectangle)
to have the color specifications work; when using patches.append(Rectangle)
, the rectangle is shown in blue (on my PC, at least) ignoring any color specification.
Btw, note that artists — Matplotlib 1.2.1 documentation: class matplotlib.patches.Rectangle states that there is
edgecolor
- for stroke colorfacecolor
- for fill color... and then there is color
- which basically sets both stroke and fill color at the same time.
Here is the modified OP code, which I've tested on Linux (Ubuntu 11.04), python 2.7, matplotlib 0.99.3:
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()
this is the output:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With