我需要绘制正态分布,然后遮盖它的某些特定区域。现在我通过创建分布图并用RegionPlot覆盖它来做到这一点。这是非常复杂的,我确信必须有一种更优雅的方式。我用Google搜索,看着文档,一无所获。帮助我!
我猜Mathematica算作编程? :d
答案 0 :(得分:5)
我能想到的最简单的方法是使用两个Plot
函数,其中一个绘制您想要着色的范围,另一个绘制整个范围,同时使用Filling
选项获取阴影。然后使用Show
一起显示它们,如下所示:
distFn = PDF[NormalDistribution[], x];
Show[
{Plot[distFn, {x, -5, 5}],
Plot[distFn, {x, -1, 1}, Filling -> {1 -> {0, Automatic}}]},
PlotRange -> All]
它仍然有点笨拙的一面,但它的工作原理,如果你做了很多,它应该很容易抽象成一个单一的功能。
答案 1 :(得分:2)
也可以使用单个Plot语句完成。
mu = 4; sigma = 3;
distFn = PDF [ NormalDistribution [mu,sigma], X];
剧情[评估[distFn * {1,Boole [mu-sigma< x< mu + sigma]}], {x,mu - 3 sigma,mu + 3 sigma}, 填充 - > {2 - >轴}]