数学建模社区-数学中国

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

作者: xiaoxing5    时间: 2013-3-24 19:07
标题: 怎么用Mathematica在一个坐标是里同时绘多个图
例如函数F(x,y),怎么使用命令在同一个坐标系里绘制y=1,y=2,y=3,F(x)的函数。并在图中用不同的颜色表示,并说明那种颜色是哪个图。求大神指点!!$ a; E9 ^4 X1 W; S: G
急急急。。。。在线等。。。。。
作者: xiaoxing5    时间: 2013-3-24 20:26
百度搜索,有网友这么解决的http://hi.baidu.com/zhidao200808/item/9fdc1efc61bdcbc8531c26aa,但是本人试过以后还是只画出了其中一个,也没有错误提示,求解答
作者: xiaoxing5    时间: 2013-3-26 14:05
问题已在小木虫上解决,如下. K, M0 F( x0 i. T1 A. |
Plot函数可以有这样的形式的:, F- A3 O" j% [, i
Plot[{f1,f2,....},{x,x_min,x_max]}]7 n, W  s# @9 c5 F+ h' ^) u2 w
也就是说可以对同一自变量的多个函数进行绘图,所有曲线是在一张图(也就是你说的同一坐标系)里画出来的。% t% q: j, n, |# h+ x: f
所以,你一开始要求的画y=1,y=2,y=3,F(x)的图,用我以前说的那个是可以的。& m, K+ W1 q2 V% m' b* M8 C; G
再说你第二帖所说的函数,其中a是个变量,x是自变量。就是关于不同的a画多条曲线吧?( f# U2 V# A3 z! w6 L9 }5 Y( }6 K
按照同样的逻辑,程序写成这样的:
9 j5 D7 P/ D5 |/ Cy = a x^2 + 2 a Sin[x] - 5* h+ _7 g$ d: [; R! I: I
Plot[{y /. a -> 1, y /. a -> 2, y /. a -> 3, y /. a -> 4,
2 w: k9 p7 h& i" l$ m* d2 N4 |" A  y /. a -> 5}, {x, -3, 3}]9 J, h* y8 [+ C+ g$ p
看下效果是不是你要的?
4 U8 B2 J0 b; L+ ?注:由于本人目前没有上传图片的权限,在此就不能把显示效果展示给各位看了,再次再次向小木虫的网友mshwangg表示感谢
作者: joy81890    时间: 2013-3-27 19:43
标题: RE: 怎么用Mathematica在一个坐标是里同时绘多个图
本帖最后由 joy81890 于 2013-3-27 19:51 编辑 3 ^6 u$ \" F6 b2 H" J+ w! E' e

6 K, l2 K8 k8 j( w2 @" W& a! x) T 2013-03-27_074359.jpg
作者: xiaoxing5    时间: 2013-3-28 19:07
joy81890 发表于 2013-3-27 19:43
9 U, m  ?& Y6 i, _
F = p1*(p2 + p3 + p4 - p5);
' U, ?  \# y7 |- E8 iPlot[{F /. f -> 0.35, F /. f -> 0.40, 7 k& C  k6 X# g) _
    F /. f -> 0.45}, {x, -0.001, 0.001}, PlotLegends -> LineLegend[{) ^; t' M5 z; n7 A8 S
      Red, Green, Blue}, {"y=1", "y=3", "y=3 I# V. S+ w/ ?8 a" M3 \7 Q
    2"}, LegendFunction -> "Panel", LegendMarkerSize -> {{10, 8}}], " W1 u7 s4 t8 f* `% m" H' q
      AxesLabel -> {"x", "光 强I"}, PlotStyle -> {Red, Blue, Greenn}];+ r/ F) `# G/ w$ E  f# |

, \( \+ f$ }; Q, [, A7 s! e为什么我的程序画不出要想要的图呢?以上是最后画图命令。LegendMarkerSize -> {{10, 8}}这句话是什么意思呢?下面是错误提示; \% i: t; G' w0 a" a# h
3 e7 p  E. p* S3 V1 Q. J
Unknown option PlotLegends in \[LeftSkeleton]1\[RightSkeleton]
作者: joy81890    时间: 2013-3-29 07:59
xiaoxing5 发表于 2013-3-28 19:07 ; O' [9 ^  W1 u
F = p1*(p2 + p3 + p4 - p5);: j5 Y; |. z1 e( N8 Z. W+ x
Plot[{F /. f -> 0.35, F /. f -> 0.40, # [# k* W6 n8 B
    F /. f -> 0.45}, {x, -0.0 ...

4 h1 n) i" Q. B3 e% c0 ]可能因为你用的是Mathematica 9 以下的版本,那样的话,就改为: : `- L8 N4 k( e7 ]+ b8 {- b6 Q+ z# K
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"}]
9 d5 C3 Q* J/ r6 U& h4 Z
" P% X& ^+ b2 a$ s4 Z 2013-03-28_195403.jpg
2 Q7 p2 g  G# F9 ^; [
/ W7 F9 ~1 c4 _有多种方法绘这个图,但这个是我能想到的最简单的,最常规的方法。“LegendMarkerSize -> {{10, 8}}” 是定义图例(Plot Legends Panel))大小。
作者: joy81890    时间: 2013-3-29 08:08
本帖最后由 joy81890 于 2013-3-29 08:12 编辑
: X, f. C3 K' T. }& k7 e9 _
6 T3 K5 a$ B! n/ x. o, t那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
8 x8 l8 @+ m5 ^$ y
8 I, s. V, k5 B8 T' n( o9 gPlot[{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 B( z6 G( O- J8 r' O* z

9 Z1 E: m: Y+ M 2013-03-28_195403.jpg / ~6 t. Q! X8 U6 j& i% L
6 ]3 R! M* g4 U  _

3 |! I2 x+ ~, p0 z- h”LegendMarkerSize -> {{10, 8}}“是定义图例(Plot Legends Panel)大小。
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08 ( y7 Q* d8 ^3 n: }" p2 y$ b+ D
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:* t0 c* o, H; P4 g4 a

; f" Z$ l5 }! X* v) iPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...
/ Q5 l! O; `1 @$ c1 v+ N5 x9 n3 F+ j
我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
# a% v5 R& T2 A/ ?; g4 j, u9 P2 V" I5 h非常感谢热心您的帮助
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08 # @+ @  {( {) J4 Z) F: K% Y! u* n
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
$ M* d  _8 S* T; G+ h9 R
) i+ |6 M9 V" vPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...
: J+ {9 ?2 ]9 f& B- m8 T1 D$ I
我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
  P9 U( T5 M. |' ^0 a2 J非常感谢热心您的帮助




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