The problem is that a region_plot
is really just a contour plot with exactly two colored regions. The "inside" color is determined by incolor
, and the "outside" is determined by outcolor
. Now here's the key: outcolor
is white by default, so you might think that the outside of the region is transparent. But it's not. That explains why you only see one of the two plots -- the top one is completely opaque, thus covering the bottom one. This also explains why you get different results when you sum the two plots in different orders -- this changes which one is on top.
Now here's a fix: just use contour_plot
directly. To do this, define a function which will separate the regions you're interested in. For example:
def sep(x,y):
if 2*x < y:
return 1
if x < y and y <= 2*x:
return 0
if y <= x:
return -1
Now make the contour plot, choosing contour lines between your separate outputs, and listing the colors you want:
contour_plot(sep, (x,0,2), (y,0,2), plot_points=400, contours=[-.5,.5], cmap=['white','red','blue'])
Also note that contour_plot
will probably work pretty well without you explicitly specifying the contours or the colors, if you don't want to worry about that step.
Just for reference, `plot1+plot2` gives a different (also not so useful) plot.
@kcrisman : ok, but could you please explain what you mean with <not so="" useful="" plot="">?
I suspect we are using contourf inappropriately with two patches - Jason Grout, any ideas?. Possibly related are http://www.mailinglistarchive.com/html/matplotlib-users@lists.sourceforge.net/2010-04/msg00168.html and http://old.nabble.com/contourf-creats-white-like-lines-%28or-gaps%29-between-each-two-color-patches-td27982822.html#a28210898
By not-so-useful I just mean that it seems to have a similar problem to your original one, but with the opposite region "on top". It was just a comment, not an answer of any kind!