数学建模社区-数学中国

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

作者: xiaoxing5    时间: 2013-3-24 19:07
标题: 怎么用Mathematica在一个坐标是里同时绘多个图
例如函数F(x,y),怎么使用命令在同一个坐标系里绘制y=1,y=2,y=3,F(x)的函数。并在图中用不同的颜色表示,并说明那种颜色是哪个图。求大神指点!!
! {  |* M6 Z1 V7 q急急急。。。。在线等。。。。。
作者: xiaoxing5    时间: 2013-3-24 20:26
百度搜索,有网友这么解决的http://hi.baidu.com/zhidao200808/item/9fdc1efc61bdcbc8531c26aa,但是本人试过以后还是只画出了其中一个,也没有错误提示,求解答
作者: xiaoxing5    时间: 2013-3-26 14:05
问题已在小木虫上解决,如下4 b9 ]8 j4 ~! t) w
Plot函数可以有这样的形式的:
; @6 U" i' @& APlot[{f1,f2,....},{x,x_min,x_max]}]# |" f1 e8 h/ }9 t
也就是说可以对同一自变量的多个函数进行绘图,所有曲线是在一张图(也就是你说的同一坐标系)里画出来的。
+ P: M1 j$ c" U8 e; l+ n# P所以,你一开始要求的画y=1,y=2,y=3,F(x)的图,用我以前说的那个是可以的。% |" z1 S- y3 b; t) [
再说你第二帖所说的函数,其中a是个变量,x是自变量。就是关于不同的a画多条曲线吧?
# ~- S( j4 q. K/ i" z0 k8 }! C按照同样的逻辑,程序写成这样的:
, c9 k' j$ V/ s2 m$ O6 J* U8 Oy = a x^2 + 2 a Sin[x] - 5. s: L9 `" s) j) |$ w
Plot[{y /. a -> 1, y /. a -> 2, y /. a -> 3, y /. a -> 4,
. f, m3 f4 D% n2 k8 p  y /. a -> 5}, {x, -3, 3}]4 p' w, J& q4 D2 ~7 D$ E) T9 P
看下效果是不是你要的?
" E7 F* P, q3 H7 T0 ]1 h注:由于本人目前没有上传图片的权限,在此就不能把显示效果展示给各位看了,再次再次向小木虫的网友mshwangg表示感谢
作者: joy81890    时间: 2013-3-27 19:43
标题: RE: 怎么用Mathematica在一个坐标是里同时绘多个图
本帖最后由 joy81890 于 2013-3-27 19:51 编辑 , o8 r" A+ C$ g* E& v5 Q

( m" L/ D* ~+ h. Z 2013-03-27_074359.jpg
作者: xiaoxing5    时间: 2013-3-28 19:07
joy81890 发表于 2013-3-27 19:43

" A# t$ u. f/ ]( KF = p1*(p2 + p3 + p4 - p5);. n0 h- Z$ R, O
Plot[{F /. f -> 0.35, F /. f -> 0.40,
) R  B; N# ?6 Y6 S4 U  K    F /. f -> 0.45}, {x, -0.001, 0.001}, PlotLegends -> LineLegend[{8 [! T, I) i* W& ~! S, g2 B
      Red, Green, Blue}, {"y=1", "y=3", "y=
7 ]0 d+ v6 ~7 y    2"}, LegendFunction -> "Panel", LegendMarkerSize -> {{10, 8}}],
0 q9 L9 c9 J" M3 K) h$ C1 W      AxesLabel -> {"x", "光 强I"}, PlotStyle -> {Red, Blue, Greenn}];
! x$ s  T; A% b( x9 D- b" C
- {' Y1 b+ N  h为什么我的程序画不出要想要的图呢?以上是最后画图命令。LegendMarkerSize -> {{10, 8}}这句话是什么意思呢?下面是错误提示
- z- L, Y  P& L
0 N$ }$ z: k& }* z4 V  B1 TUnknown option PlotLegends in \[LeftSkeleton]1\[RightSkeleton]
作者: joy81890    时间: 2013-3-29 07:59
xiaoxing5 发表于 2013-3-28 19:07 3 |; ~# P$ ?7 J8 b5 Q2 F! M
F = p1*(p2 + p3 + p4 - p5);0 r" G: B' r+ B/ I' f( Q
Plot[{F /. f -> 0.35, F /. f -> 0.40,
3 H8 f. U5 \3 f    F /. f -> 0.45}, {x, -0.0 ...

: J7 S' a; `: `可能因为你用的是Mathematica 9 以下的版本,那样的话,就改为: 8 M9 j( |0 T5 G- Y, w0 G
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"}]
( S4 G; @7 D3 a1 O/ k& |* X
0 p6 g3 }2 g. J3 v2 M  d; G 2013-03-28_195403.jpg
7 U' e/ L# t9 R, y; Z0 E8 Q2 w, ?5 Y8 D7 S" E: t
有多种方法绘这个图,但这个是我能想到的最简单的,最常规的方法。“LegendMarkerSize -> {{10, 8}}” 是定义图例(Plot Legends Panel))大小。
作者: joy81890    时间: 2013-3-29 08:08
本帖最后由 joy81890 于 2013-3-29 08:12 编辑 8 n& e! d: c2 e2 F* Z8 s  B
6 P- G( p+ i$ b& C
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:4 k4 g" X( {; r6 Z: O& o
. ~: {  m3 K& Q
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"}]1 Y! F: M% q5 h! o! c- g' E+ b' W

" ]- ~# A1 l# }. Y& g 2013-03-28_195403.jpg   ~/ A& f8 f1 \& J; H4 Q: n
* w6 k7 c- G& Y; L0 w
3 [& G& x8 ]# w1 h1 \1 A8 t
”LegendMarkerSize -> {{10, 8}}“是定义图例(Plot Legends Panel)大小。
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08 # S4 ]! @" G: g1 d' }
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
  y+ ^& \2 ?( J1 `( e1 Y* O/ ^% N# a: w; d9 v4 `* U
Plot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...

0 Y( V; Z; P7 r) g' h5 n我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。5 w2 I; e  k$ V2 w- V2 X9 s
非常感谢热心您的帮助
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08 2 L; \2 b. H6 I  z& H+ q0 l0 ^  ?
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:$ k' y; [3 H+ h" g- ?3 D) p( c$ }! Q

+ _' Q5 h% r* r* iPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...

; x+ d7 A7 ^& k/ A我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
, X$ ?! A! j* u, \5 V0 Q( {非常感谢热心您的帮助




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