数学建模社区-数学中国

标题: 怎么用Mathematica在一个坐标是里同时绘多个图 [打印本页]

作者: xiaoxing5    时间: 2013-3-24 19:07
标题: 怎么用Mathematica在一个坐标是里同时绘多个图
例如函数F(x,y),怎么使用命令在同一个坐标系里绘制y=1,y=2,y=3,F(x)的函数。并在图中用不同的颜色表示,并说明那种颜色是哪个图。求大神指点!!/ @/ E; S4 @6 ^5 m
急急急。。。。在线等。。。。。
作者: xiaoxing5    时间: 2013-3-24 20:26
百度搜索,有网友这么解决的http://hi.baidu.com/zhidao200808/item/9fdc1efc61bdcbc8531c26aa,但是本人试过以后还是只画出了其中一个,也没有错误提示,求解答
作者: xiaoxing5    时间: 2013-3-26 14:05
问题已在小木虫上解决,如下
% ?8 O2 c& K! a& O: |Plot函数可以有这样的形式的:
) k+ H& y* p. k2 J9 n, `Plot[{f1,f2,....},{x,x_min,x_max]}], O0 D4 ?) d, y' B1 N
也就是说可以对同一自变量的多个函数进行绘图,所有曲线是在一张图(也就是你说的同一坐标系)里画出来的。$ S) |) i. D7 u
所以,你一开始要求的画y=1,y=2,y=3,F(x)的图,用我以前说的那个是可以的。
) V  O# ]4 g5 `& {再说你第二帖所说的函数,其中a是个变量,x是自变量。就是关于不同的a画多条曲线吧?$ o3 m% ^2 x- o: Z/ i9 B; N
按照同样的逻辑,程序写成这样的:
) v* t! y. R3 j/ S9 ]y = a x^2 + 2 a Sin[x] - 51 S. A* K" j% [  l" m
Plot[{y /. a -> 1, y /. a -> 2, y /. a -> 3, y /. a -> 4, 5 p8 E4 m$ e' f$ E  v7 m1 O  ^
  y /. a -> 5}, {x, -3, 3}]& w) c5 x, \# a7 M4 z
看下效果是不是你要的?6 [% a. D4 I5 ?! a. [  l
注:由于本人目前没有上传图片的权限,在此就不能把显示效果展示给各位看了,再次再次向小木虫的网友mshwangg表示感谢
作者: joy81890    时间: 2013-3-27 19:43
标题: RE: 怎么用Mathematica在一个坐标是里同时绘多个图
本帖最后由 joy81890 于 2013-3-27 19:51 编辑
1 F* r8 H$ Y! P/ x, A
, S, y% @5 h) C/ }+ J! T$ m8 \) ^ 2013-03-27_074359.jpg
作者: xiaoxing5    时间: 2013-3-28 19:07
joy81890 发表于 2013-3-27 19:43

3 E- }/ a' @, N0 B- YF = p1*(p2 + p3 + p4 - p5);
2 Y/ s! p. E. l& t, d& `Plot[{F /. f -> 0.35, F /. f -> 0.40,
! H- }' F5 }0 [- T7 o1 r0 Z1 c    F /. f -> 0.45}, {x, -0.001, 0.001}, PlotLegends -> LineLegend[{
& n; p. B5 j! U, U+ D+ X, |      Red, Green, Blue}, {"y=1", "y=3", "y=
  P9 K! e' V7 W6 E    2"}, LegendFunction -> "Panel", LegendMarkerSize -> {{10, 8}}],
% }4 S" D% i- W# F0 @( c1 A      AxesLabel -> {"x", "光 强I"}, PlotStyle -> {Red, Blue, Greenn}];7 Y" i4 p# ^4 f/ A: J* b; }

  X( f2 z0 Q/ m为什么我的程序画不出要想要的图呢?以上是最后画图命令。LegendMarkerSize -> {{10, 8}}这句话是什么意思呢?下面是错误提示
& c, |# J1 R+ ~' i# k/ J4 c1 E: ^# c. }
Unknown option PlotLegends in \[LeftSkeleton]1\[RightSkeleton]
作者: joy81890    时间: 2013-3-29 07:59
xiaoxing5 发表于 2013-3-28 19:07
' k6 N% \; \: t, j. hF = p1*(p2 + p3 + p4 - p5);( _6 z, }  k# w& d) J- J
Plot[{F /. f -> 0.35, F /. f -> 0.40, ; V$ e9 [( L3 [* w
    F /. f -> 0.45}, {x, -0.0 ...
) T. P7 e, C1 X( q* x
可能因为你用的是Mathematica 9 以下的版本,那样的话,就改为:
  q8 c$ D8 Q4 M0 ePlot[{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"}]
7 K- k! Y. @" v0 L' E
4 ]3 v, ^8 @+ l: g 2013-03-28_195403.jpg , J1 x3 R7 a+ i% I6 N9 ^' I
, d' X+ ~* [; {, ?5 [. c+ q% @
有多种方法绘这个图,但这个是我能想到的最简单的,最常规的方法。“LegendMarkerSize -> {{10, 8}}” 是定义图例(Plot Legends Panel))大小。
作者: joy81890    时间: 2013-3-29 08:08
本帖最后由 joy81890 于 2013-3-29 08:12 编辑 2 d! E$ P- i4 X

, U, n8 ?) B* Y6 d( E那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
* h, ]4 q4 i. x/ q& _; {7 w1 W5 x6 N
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"}]
7 ?8 m4 N$ N8 v  `% w( Z" [% b# Y7 G; X! X" \0 i
2013-03-28_195403.jpg 0 `  f( l8 Q5 u  {

6 n# n  ~) D/ c2 |
* u0 R- }- L2 J”LegendMarkerSize -> {{10, 8}}“是定义图例(Plot Legends Panel)大小。
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08
5 h1 I1 G' n, ]6 _4 f那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
# ?2 h; s$ B: Z
$ D7 ^. Z# k6 a( O5 k  ?, p- Z. mPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...
2 X$ e$ t8 p, z, u8 W  q
我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。; ?- _& X, E2 Y; z7 b
非常感谢热心您的帮助
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08
; G# H! ^- b; J2 {) ~那可能是因为你用的是Mathematica 9 以下的版本,那就改为:0 S1 A' z' w, t* ^

6 ?' Y" F- ~5 [& K% uPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...
3 \0 K) I# g0 u$ I6 T0 X% k  }
我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
' d2 {1 f4 Y; t2 A  C& V+ U9 ~非常感谢热心您的帮助




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5