5
$\begingroup$

I was working on a simple 2D region plot:

RegionPlot[x+0.45y>=122. && y>=76.8 && 83.2<=x<=101.7 && y<=88.6,{x,82,95},{y,76,90},PerformanceGoal->"Quality",ImageSize->Large,LabelStyle->16,FrameLabel->{"x","y"}]

Everything works as expected and gives the following result:

regionplot_2d_1

However, if I add a ColorFunction (I have tried different onces, also from reference), the whole image, including frame labels gets somehow rasterized. This looks quite ugly.

RegionPlot[x+0.45y>=122. && y>=76.8 && 83.2<=x<=101.7 && y<=88.6,{x,82,95},{y,76,90},ColorFunction->Function[{x, y},Norm@{x,y}],PerformanceGoal->"Quality",ImageSize->Large,LabelStyle->16,FrameLabel->{"x","y"}]

regionplot_2d_2

Can you reproduce it on your system? How can I use ColorFunction and RegionPlot without rasterization? Otherwise, how can I increase the resolution? RegionPlot has no ImageResolution or other similar options.

I am using 10.0 for Microsoft Windows (64-bit) (September 9, 2014)

Thanks a lot!


ADDITIONAL INFO

Meanwhile, I have used

ContourPlot[Norm[{x, y}], {x, 82, 95}, {y, 76, 90}, ColorFunction -> "Rainbow", Contours -> 64, ContourLines -> False, RegionFunction -> Function[{x, y}, x + 0.45*y >= 122. && y >= 76.8 && 83.2 <= x <= 101.7 && y <= 88.6], PerformanceGoal -> "Quality", ImageSize -> Large, LabelStyle -> 16, FrameLabel -> {"x", "y"}, PlotPoints -> 32]

as an interim solution. It produces a good looking graphics object:

contourplot

$\endgroup$
4
  • 1
    $\begingroup$ I can't reproduce this error. I'm using version 10.0.1.0 on 64-bit Linux and the frame labels look the same in both plots for me. $\endgroup$
    – Jason B.
    Commented Nov 26, 2014 at 11:34
  • $\begingroup$ No problem with v10.0.1 on a Mac OS X 10.10.1 $\endgroup$
    – Bob Hanlon
    Commented Nov 26, 2014 at 13:48
  • $\begingroup$ I can confirm the issue in 10.0.1 on Win8.1 64-bit. $\endgroup$
    – Silvia
    Commented Nov 26, 2014 at 19:59
  • $\begingroup$ Still an issue in 2021 $\endgroup$ Commented Jun 27, 2021 at 20:23

1 Answer 1

2
$\begingroup$

I reproduce what you observe in version 10.0.1 under Win7 x64: the on-screen appearance of the glyphs in tick labels and frame labels changes considerably after addition of ColorFunction (which introduces VertexColors into Graphics generated by RegionPlot). Here is the code I used to check the on-screen appearance:

pl1 = RegionPlot[
  x + 0.45 y >= 122. && y >= 76.8 && 83.2 <= x <= 101.7 && 
   y <= 88.6, {x, 82, 95}, {y, 76, 90}, PerformanceGoal -> "Quality", 
  ImageSize -> Large, LabelStyle -> 16, FrameLabel -> {"x", "y"}]
pl2 = RegionPlot[
  x + 0.45 y >= 122. && y >= 76.8 && 83.2 <= x <= 101.7 && 
   y <= 88.6, {x, 82, 95}, {y, 76, 90}, 
  ColorFunction -> Function[{x, y}, Norm@{x, y}], 
  PerformanceGoal -> "Quality", ImageSize -> Large, LabelStyle -> 16, 
  FrameLabel -> {"x", "y"}]
FlipView[{pl1, pl2}]

Not only the on-screen appearance changes but also Export to raster formats produces different results:

Export["pl1.png", pl1]
Export["pl2.png", pl2]

pl1

pl2

But when I Export the plots as PDFs there is no difference in the appearance of the glyphs:

Export["pl1.pdf", pl1]
Export["pl2.pdf", pl2]

I suggest you to report it to the technical support.

I also confirm that the workaround through switching to ContourPlot works perfectly. The key is that Graphics generated by ContourPlot does not contain VertexColors.

$\endgroup$
2
  • $\begingroup$ Should this be logged as a bug? $\endgroup$
    – 32u-nd
    Commented Nov 26, 2014 at 14:36
  • 1
    $\begingroup$ @akm It is unexpected behavior (the official term used by WRI) and probably should be counted as a borderline bug. $\endgroup$ Commented Nov 26, 2014 at 14:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.