xiaoxing5 发表于 2013-3-24 19:07

怎么用Mathematica在一个坐标是里同时绘多个图

例如函数F(x,y),怎么使用命令在同一个坐标系里绘制y=1,y=2,y=3,F(x)的函数。并在图中用不同的颜色表示,并说明那种颜色是哪个图。求大神指点!!
急急急。。。。在线等。。。。。

xiaoxing5 发表于 2013-3-24 20:26

百度搜索,有网友这么解决的http://hi.baidu.com/zhidao200808/item/9fdc1efc61bdcbc8531c26aa,但是本人试过以后还是只画出了其中一个,也没有错误提示,求解答

xiaoxing5 发表于 2013-3-26 14:05

问题已在小木虫上解决,如下
Plot函数可以有这样的形式的:
Plot[{f1,f2,....},{x,x_min,x_max]}]
也就是说可以对同一自变量的多个函数进行绘图,所有曲线是在一张图(也就是你说的同一坐标系)里画出来的。
所以,你一开始要求的画y=1,y=2,y=3,F(x)的图,用我以前说的那个是可以的。
再说你第二帖所说的函数,其中a是个变量,x是自变量。就是关于不同的a画多条曲线吧?
按照同样的逻辑,程序写成这样的:
y = a x^2 + 2 a Sin - 5
Plot[{y /. a -> 1, y /. a -> 2, y /. a -> 3, y /. a -> 4,
  y /. a -> 5}, {x, -3, 3}]
看下效果是不是你要的?
注:由于本人目前没有上传图片的权限,在此就不能把显示效果展示给各位看了,再次再次向小木虫的网友mshwangg表示感谢

joy81890 发表于 2013-3-27 19:43

RE: 怎么用Mathematica在一个坐标是里同时绘多个图

本帖最后由 joy81890 于 2013-3-27 19:51 编辑

xiaoxing5 发表于 2013-3-28 19:07

joy81890 发表于 2013-3-27 19:43 static/image/common/back.gif


F = p1*(p2 + p3 + p4 - p5);
Plot[{F /. f -> 0.35, F /. f -> 0.40,
    F /. f -> 0.45}, {x, -0.001, 0.001}, PlotLegends -> LineLegend[{
      Red, Green, Blue}, {"y=1", "y=3", "y=
    2"}, LegendFunction -> "Panel", LegendMarkerSize -> {{10, 8}}],
      AxesLabel -> {"x", "光 强I"}, PlotStyle -> {Red, Blue, Greenn}];

为什么我的程序画不出要想要的图呢?以上是最后画图命令。LegendMarkerSize -> {{10, 8}}这句话是什么意思呢?下面是错误提示

Unknown option PlotLegends in \1\

joy81890 发表于 2013-3-29 07:59

xiaoxing5 发表于 2013-3-28 19:07 static/image/common/back.gif
F = p1*(p2 + p3 + p4 - p5);
Plot[{F /. f -> 0.35, F /. f -> 0.40,
    F /. f -> 0.45}, {x, -0.0 ...

可能因为你用的是Mathematica 9 以下的版本,那样的话,就改为:
Plot[{1, 2, 3}, {x, -0.5, 3}, PlotRange -> {0, 3.5},  PlotLegends -> {"y=1", "y=2", "y=3"}, Ticks -> {{}, {1, 2, 3}},  AxesLabel -> {"x", "y"}]



有多种方法绘这个图,但这个是我能想到的最简单的,最常规的方法。“LegendMarkerSize -> {{10, 8}}” 是定义图例(Plot Legends Panel))大小。

joy81890 发表于 2013-3-29 08:08

本帖最后由 joy81890 于 2013-3-29 08:12 编辑

那可能是因为你用的是Mathematica 9 以下的版本,那就改为:

Plot[{1, 2, 3}, {x, -0.5, 3}, PlotLegends -> {"y=1", "y=2", "y=3"}, PlotRange -> {0, 3.5},  Ticks -> {{}, {1, 2, 3}},  AxesLabel -> {"x", "y"}]




”LegendMarkerSize -> {{10, 8}}“是定义图例(Plot Legends Panel)大小。

xiaoxing5 发表于 2013-4-7 09:51

joy81890 发表于 2013-3-29 08:08 static/image/common/back.gif
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:

Plot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...

我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
非常感谢热心您的帮助

xiaoxing5 发表于 2013-4-7 09:51

joy81890 发表于 2013-3-29 08:08 static/image/common/back.gif
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:

Plot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...

我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
非常感谢热心您的帮助
页: [1]
查看完整版本: 怎么用Mathematica在一个坐标是里同时绘多个图