请问这种图怎么画,不同区域有不同的颜色和填充
mathematica吧
全部回复
仅看楼主
level 2
请问这种图mathematica怎么画,不同区域有不同的颜色和填充
是用的纹理吗?
如果只用网格和regionplot能画吗,就是不同区域有不同的颜色和形状填充
2022年04月12日 03点04分 1
吧务
level 12
12.1版本新加了个PatternFilling,刚好解决这类问题
pattern1 =
PatternFilling[{"Checkerboard", Lighter@Purple}, ImageScaled[1/50]];
pattern2 = PatternFilling[Rasterize[
Graphics[{Directive[Darker@Green, Opacity[0.5]],
Line[{{-.1,
#}, {1.1, #
}}] & /@ (.05 + Range[0, 1, .1])},
PlotRangePadding -> None, PlotRange -> {{0, 1}, {0, 1}}],
RasterSize -> 50, ImageSize -> 50
], ImageScaled[1/20]];
pattern3 = PatternFilling[Rasterize[
Graphics[{Directive[Lighter@Red, Thickness[.2]],
Line[{{-.1, 1.1 +
#}, {1.1, -.1 + #
}} & /@ {-1, 0, 1}]},
PlotRangePadding -> None, ImagePadding -> None,
PlotRange -> {{0, 1}, {0, 1}}],
RasterSize -> 50, ImageSize -> 50
], ImageScaled[1/50]];
pattern4 =
PatternFilling[
Graphics[{Directive[Hue[0.61`, 0.7`, 1],
Thickness[.4]], {Line[{{{-.1,
1.1 +
#}, {1.1, -.1 + #
}}, {{-.1, -.1 + #}, {1.1,
1.1 + #}}}] & /@ {-1, 0, 1}}}, PlotRangePadding -> None,
ImagePadding -> None, PlotRange -> {{0, 1}, {0, 1}}],
ImageScaled[1/80]];
Plot[{
Piecewise[{{2, x < 1}, {2 + 0.6 Log[x], x >= 1}}],
Piecewise[{{1, x < 1}, {1 + 0.5 Log[x],
1 <= x < 2}, {1 + 0.5 Log[x] + (x - 2)/10, x >= 2}}],
Piecewise[{{1, x < 1}, {1 + 0.5 Log[x], x >= 1}}]}, {x, 0, 3},
Filling -> {
1 -> {Top, pattern1},
1 -> {{2}, pattern2},
2 -> {{3}, pattern3},
3 -> {Bottom, pattern4}}, PlotRange -> {{0, 3}, {1, 3}},
ImageSize -> 600, GridLines -> None, Ticks -> None]
2022年04月12日 12点04分 2
好!我知道其存在但是忘记它叫啥了,结果找到Texture那里去了
2022年04月12日 13点04分
谢谢!我的版本是12.0,那我需要更新一下!
2022年04月17日 12点04分
12.0版本的有解决方法吗
2024年07月25日 15点07分
1