2017-02-09 2 views
-1

Ich muss eine Ellipse mit zwei verschiedenen Farben einfärben. Dies könnte halb und halb oder besser erfolgen, ein horizontaler Gradient.Farbe Matplotlib Patch mit 2 Farben oder einem Gradienten

Ich möchte weiterhin Matplotlib Patches verwenden und nicht Gleichungen verwenden, um die Ellipse zu zeichnen.

Ich verwende diesen minimalen Code, um das Problem anzuzeigen.

import matplotlib.pyplot as plt 
import matplotlib.patches as mpatch 

ax = plt.subplot(111) 
ax.add_patch(mpatch.Ellipse(xy = [0.5, 0.5], width= 0.75, height=0.5, facecolor = 'blue')) 
plt.show() 

Anserws zu How to draw a filled arc in matplotlib richtet einen Kreisbogen zu füllen, mit einer Ausnahme, die einen Ellipsenbogen ausfüllen kann.

Dies ist eine Karikatur dessen, was ich

enter image description here

+0

http://stackoverflow.com/questions/10958835/matplotlib-color-gradient-in-patches – Chuck

+0

Beide Lösungen in diesem Thread vorgeschlagen haben matplotlib Patches nicht verwendet. – heracho

+0

Ich dachte daran, einen Keilfleck zu benutzen, um halbe Ellipsen zu zeichnen. aber ich weiß nicht, wie man die Halbkreise in "Halbellipsen" umwandelt. – heracho

Antwort

-1

Der Patch Bogen eine halb Ellipse zeichnen können, aber standardmäßig müssen sie nicht gefüllt werden kann.

Ich fand, wie zu füllen und Bogen in: How to draw a filled arc in matplotlib.

import matplotlib.pyplot as plt 
import matplotlib.patches as mpatch 

ax = plt.subplot(111) 
ax.add_patch(mpatch.Arc(xy = [0.5, 0.5], width= 0.75, height=0.5, angle=.0, theta1= 90.0, theta2=-90.0, color = 'blue', hatch = 'OOOO')) 
ax.add_patch(mpatch.Arc(xy = [0.5, 0.5], width= 0.75, height=0.5, angle=.0, theta1=-90.0, theta2= 90.0, color = 'green', hatch = 'OOOO')) 

enter image description here

+0

Diese Lösung hängt von der Bildauflösung ab , mit genug Zoom ist es möglich, die Punkte statt einer festen Farbe zu bemerken. – heracho

Verwandte Themen