我需要绘制一个正态分布,然后对它的某些特定区域进行着色。现在我通过创建分布图并用 RegionPlot 覆盖它来做到这一点。这非常令人费解,我敢肯定必须有一种更优雅的方式来做到这一点。我用谷歌搜索,查看文档,一无所获。帮帮我!
我猜 Mathematica 算不算编程?:D
我需要绘制一个正态分布,然后对它的某些特定区域进行着色。现在我通过创建分布图并用 RegionPlot 覆盖它来做到这一点。这非常令人费解,我敢肯定必须有一种更优雅的方式来做到这一点。我用谷歌搜索,查看文档,一无所获。帮帮我!
我猜 Mathematica 算不算编程?:D
我能想到的最简单的方法是使用两个Plot
函数,一个绘制你想要着色的范围,另一个绘制整个范围,同时使用Filling
选项来获取阴影。然后使用 一起显示它们Show
,如下所示:
distFn = PDF[NormalDistribution[], x];
Show[
{Plot[distFn, {x, -5, 5}],
Plot[distFn, {x, -1, 1}, Filling -> {1 -> {0, Automatic}}]},
PlotRange -> All]
它仍然有点笨拙,但它可以工作,如果你经常这样做,它应该很容易抽象成一个函数。
也可以使用单个 Plot 语句来完成。
亩 = 4; 西格玛 = 3;
distFn = PDF[NormalDistribution[mu, sigma], x];
Plot[Evaluate[distFn* {1, Boole[mu - sigma < x < mu + sigma]}], {x, mu - 3 sigma, mu + 3 sigma}, Filling -> {2 -> Axis}]