使用Manipulate选择性地绘制函数

时间:2015-10-21 02:37:15

标签: plot wolfram-mathematica inequality

我想将解决方案区域绘制成一个线性方程组,但我希望能够一次绘制一个方程(然后“分层”它们),而不是一次全部。我无法使用Manipulate函数找出如何做到这一点。我使用CheckboxBar吗?这是我到目前为止所做的:

points1 := Table[{i - 1, j - 1}, {i, 70}, {j, 70}]
Show[ListPlot[points1, PlotRange -> {{0, 70}, {0, 70}}, ImageSize -> 850,
AxesLabel -> {"Racing Cars", "Sport-Utility Cars"}, PlotStyle -> 
Directive[RGBColor[0.45, 0.67, 0.82, 0.82], PointSize[0.005]], LabelStyle ->
Medium],
RegionPlot[{R <= 40, S <= 60, R + S >= 70}, {R, 0, 70}, {S, 0, 70}, 
PlotLegends -> "Expressions"]]

想要的是能够一次只绘制一个等式。如,

Manipulate[Plot[function[frequency*x + phase], {x, -6.6, 6.6}], {frequency, 1, 5}, 
{phase, 1, 10}, {function, {Sin, Cos, Tan}}]

(对不起,新手在这里......我保证我做了彻底的谷歌搜索,但我找到的所有例子都没有对我的情况有所帮助。)

非常感谢!

1 个答案:

答案 0 :(得分:0)

您在帖子中的评论有语法错误。 RegionPlot需要定义两个变量。

Manipulate[
 Show[
  RegionPlot[R <= 40, {R, 0, 70}, {S, 0, 70}, PlotStyle -> {Opacity[plot1], Orange}],
  RegionPlot[S <= 60, {R, 0, 70}, {S, 0, 70}, PlotStyle -> {Opacity[plot2], Blue}], 
  RegionPlot[R + S >= 70, {R, 0, 70}, {S, 0, 70}, PlotStyle -> {Opacity[plot3], Brown}]
  ],
 {{plot1, 0, "R <= 40"}, {0, .5}, Checkbox},
 {{plot2, 0, "S <= 60"}, {0, .5}, Checkbox},
 {{plot3, 0, "R + S >= 70"}, {0, .5}, Checkbox},
 ControlPlacement -> Left]

enter image description here

希望这有帮助。