数学建模社区-数学中国

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

作者: xiaoxing5    时间: 2013-3-24 19:07
标题: 怎么用Mathematica在一个坐标是里同时绘多个图
例如函数F(x,y),怎么使用命令在同一个坐标系里绘制y=1,y=2,y=3,F(x)的函数。并在图中用不同的颜色表示,并说明那种颜色是哪个图。求大神指点!!( t5 X* n' [# u3 e$ p5 a
急急急。。。。在线等。。。。。
作者: xiaoxing5    时间: 2013-3-24 20:26
百度搜索,有网友这么解决的http://hi.baidu.com/zhidao200808/item/9fdc1efc61bdcbc8531c26aa,但是本人试过以后还是只画出了其中一个,也没有错误提示,求解答
作者: xiaoxing5    时间: 2013-3-26 14:05
问题已在小木虫上解决,如下5 J: ]4 D9 b4 W! h
Plot函数可以有这样的形式的:5 c, r7 k1 c: Z
Plot[{f1,f2,....},{x,x_min,x_max]}]( L( x! o' v- E2 J# A; [3 R- O
也就是说可以对同一自变量的多个函数进行绘图,所有曲线是在一张图(也就是你说的同一坐标系)里画出来的。7 D$ T2 V: |; [) p
所以,你一开始要求的画y=1,y=2,y=3,F(x)的图,用我以前说的那个是可以的。
& f, O1 T" f5 e( L) j再说你第二帖所说的函数,其中a是个变量,x是自变量。就是关于不同的a画多条曲线吧?
: T1 s. [1 P3 o  @7 ^& w* o按照同样的逻辑,程序写成这样的:
7 L1 Q  y- @# o, p; \y = a x^2 + 2 a Sin[x] - 54 D9 N; O; h2 S3 }9 b
Plot[{y /. a -> 1, y /. a -> 2, y /. a -> 3, y /. a -> 4, ( g1 r" o7 n7 e& a9 r
  y /. a -> 5}, {x, -3, 3}]
8 p9 o* J2 {( ?: v( z- g3 P; }看下效果是不是你要的?
5 S. Q  d9 e8 m7 ~  h9 G注:由于本人目前没有上传图片的权限,在此就不能把显示效果展示给各位看了,再次再次向小木虫的网友mshwangg表示感谢
作者: joy81890    时间: 2013-3-27 19:43
标题: RE: 怎么用Mathematica在一个坐标是里同时绘多个图
本帖最后由 joy81890 于 2013-3-27 19:51 编辑 6 N, m: K3 K7 E1 L9 w! o. Q
; R3 S  F4 n9 \0 s, x+ g& N6 {
2013-03-27_074359.jpg
作者: xiaoxing5    时间: 2013-3-28 19:07
joy81890 发表于 2013-3-27 19:43

. b9 B; M8 I2 i8 s3 vF = p1*(p2 + p3 + p4 - p5);
+ g# k2 @8 s+ U2 e- c, l2 b3 mPlot[{F /. f -> 0.35, F /. f -> 0.40,
% ]- O! w2 s' P( O; U9 g& d2 C    F /. f -> 0.45}, {x, -0.001, 0.001}, PlotLegends -> LineLegend[{$ i( O/ U1 [" f4 |1 H& w
      Red, Green, Blue}, {"y=1", "y=3", "y=
# K1 b1 O% h% c/ R1 T+ I* G7 m% h  D( X    2"}, LegendFunction -> "Panel", LegendMarkerSize -> {{10, 8}}],
6 |* X" A  O) g. m8 q      AxesLabel -> {"x", "光 强I"}, PlotStyle -> {Red, Blue, Greenn}];& I. s% i  y; e# l4 `: o, Y

: C3 @% G( c2 n0 E为什么我的程序画不出要想要的图呢?以上是最后画图命令。LegendMarkerSize -> {{10, 8}}这句话是什么意思呢?下面是错误提示# s' P2 @. X/ y7 v% ^( H  N( u8 H
8 r$ c' V6 J. h* f8 ]$ ~' P
Unknown option PlotLegends in \[LeftSkeleton]1\[RightSkeleton]
作者: joy81890    时间: 2013-3-29 07:59
xiaoxing5 发表于 2013-3-28 19:07 * c: T' e) W9 o6 w7 o
F = p1*(p2 + p3 + p4 - p5);
# [/ D3 J( v7 X- M! w! aPlot[{F /. f -> 0.35, F /. f -> 0.40,
' l. m) N- z. B$ Y    F /. f -> 0.45}, {x, -0.0 ...
4 n! J% `1 R$ ?# I8 E* W
可能因为你用的是Mathematica 9 以下的版本,那样的话,就改为: - a+ ~0 j5 w8 N/ y# y, `
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"}]
8 I9 }" q" _( D% c  R
5 g) t0 `' q/ d' y! [' ^$ L2 K5 v 2013-03-28_195403.jpg
( u, A9 f5 r0 W& I' x" O' H( \1 r, z1 R2 h4 U6 C6 w) Z& P
有多种方法绘这个图,但这个是我能想到的最简单的,最常规的方法。“LegendMarkerSize -> {{10, 8}}” 是定义图例(Plot Legends Panel))大小。
作者: joy81890    时间: 2013-3-29 08:08
本帖最后由 joy81890 于 2013-3-29 08:12 编辑 - b& b% c4 v2 x% t) l; \
4 f& ]& Y$ I1 n4 a/ Z( w( |
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
% S! b' z  |4 I) l( u3 ]2 w
  E3 z& C6 ?0 o7 w, V9 k$ WPlot[{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"}]5 `0 E3 x9 I9 e$ q6 ?2 K
4 q$ I7 R; Y$ {: U, z. i3 t
2013-03-28_195403.jpg + I. S- k! N' }

/ @3 z8 R8 V9 n4 K- `/ I% E' _/ H: \( }. H6 Y4 p! S
”LegendMarkerSize -> {{10, 8}}“是定义图例(Plot Legends Panel)大小。
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08 " p( Q1 r/ L7 g2 J) |" ^
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
- ~( r( E: N2 i; `" X1 ]# k! _! V& {
" h) W9 Z: e, U5 Y) VPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...
6 j  ~: [$ F2 t4 y# x+ G" M
我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。6 a( f, I! C6 ]! ?% Q; W
非常感谢热心您的帮助
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08 2 \- Z. Q4 j, `
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
! h4 N* c0 h2 ?  {! x( G9 S
& N8 _7 _& h5 o4 {! V0 k# g  hPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...

; |7 C) g6 `$ K3 O* `9 O我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
, y- u6 i1 K( E7 w* ^% R& q非常感谢热心您的帮助




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