2011-12-27 87 views
3

是否可以孵化PolyCollection實例? 我想擁有從fill_betweenx返回的PolyCollection。如何孵化PolyCollection實例?

import matplotlib.mlab as mlab 
from matplotlib.pyplot import figure, show 
import numpy as np 

x = np.arange(0.0, 2, 0.01) 
y1 = np.sin(2*np.pi*x) 
y2 = 1.2*np.sin(4*np.pi*x) 

fig = figure() 
ax1 = fig.add_subplot(111) 

PC = ax1.fill_betweenx(x, 0, y1) 
# I want to do something like this 
# PC.set_hatch('\') 
# but there is no such method 

show() 

回答

1

這是一個黑客位,但你應該能夠做這樣的事情:

import matplotlib.pyplot as plt 
import numpy as np 
from matplotlib.patches import PathPatch 

x = np.arange(0.0, 2, 0.01) 
y1 = np.sin(2*np.pi*x) 
y2 = 1.2*np.sin(4*np.pi*x) 

fig, ax = plt.subplots() 
pc = ax.fill_betweenx(x, 0, y1, color='blue') 

# Now we'll add the hatches... 
for path in pc.get_paths(): 
    patch = PathPatch(path, hatch='/', facecolor='none') 
    ax.add_patch(patch) 

plt.show() 

enter image description here