Mathematica基础——RegionPlot的用法(3)选项

Mathematica基础——RegionPlot的用法(3)选项

上一篇文章里,我们介绍了RegionPlot的两个选项(AspectRatio、Boundary--Style)。

本文,要再介绍另外两个选项:ColorFunction、ColorFunctionScaling。

分别用x和y的值来控制区域的颜色:

RegionPlot[Sin[x^2] Sin[y^2] > 1/10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> Function[{x, y}, Hue[x]]]

RegionPlot[Sin[x^2] Sin[y^2] > 1/10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> Function[{x, y}, Hue[y]]]

给区域涂上“彩虹”色(Rainbow):

RegionPlot[Sin[x] Sin[x y] > 1/10, {x, -5, 5}, {y, -5, 5},

ColorFunction -> "Rainbow"]

换成“绿色粉红色调”:

RegionPlot[Sin[x] Sin[x y] > 1/10, {x, -5, 5}, {y, -5, 5},

ColorFunction -> "GreenPinkTones"]

像"GreenPinkTones"、"Rainbow"这样现成的染色方案还有许多,如下图所示。

如果ColorFunction和PlotStyle都“限制”区域的颜色,就以ColorFunction为优先!

RegionPlot[Sin[x y] Sin[x^2 + y^2] > 1/10, {x, -5, 5}, {y, -5, 5},

ColorFunction -> "BrightBands",

PlotStyle -> Directive[Opacity[0.5], Red]]

不过MeshShading的优先级要高于ColorFunction:

RegionPlot[Sin[2 x] Sin[3 y] > 1/20, {x, -5, 5}, {y, -5, 5},

Mesh -> 30, MeshShading -> {{Green, Automatic}, {Automatic, Red}},

ColorFunction -> "NeonColors"]

ColorFunctionScaling的作用是,指定供给一个颜色函数的自变量,看是否应当将尺度按比例缩放到 0 和 1 之间。

当ColorFunctionScaling->False时:

RegionPlot[Sin[x y] Sin[x + y] > 1/10, {x, -5, 5}, {y, -5, 5},

ColorFunction ->

Function[{x, y}, ColorData["SolarColors"][Sin[x] Sin[y]]],

ColorFunctionScaling -> False]

当ColorFunctionScaling->True,跟没有这个选项几乎是相同的效果:

RegionPlot[Sin[x y] Sin[x + y] > 1/10, {x, -5, 5}, {y, -5, 5},

ColorFunction ->

Function[{x, y}, ColorData["SolarColors"][Sin[x] Sin[y]]],

ColorFunctionScaling -> True]

RegionPlot[Sin[x y] Sin[x + y] > 1/10, {x, -5, 5}, {y, -5, 5},

ColorFunction ->

Function[{x, y}, ColorData["SolarColors"][Sin[x] Sin[y]]]]

再来一个具体的例子:

RegionPlot[Sin[x] Sin[y] > 1/10000, {x, -5, 5}, {y, -5, 5}, ColorFunction -> Function[{x, y}, ColorData["BlueGreenYellow"][Sin[x] Sin[y]]], ColorFunctionScaling -> False]