数学建模社区-数学中国

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

作者: xiaoxing5    时间: 2013-3-24 19:07
标题: 怎么用Mathematica在一个坐标是里同时绘多个图
例如函数F(x,y),怎么使用命令在同一个坐标系里绘制y=1,y=2,y=3,F(x)的函数。并在图中用不同的颜色表示,并说明那种颜色是哪个图。求大神指点!!
$ J% J( h0 b9 Y0 D1 e: l9 I急急急。。。。在线等。。。。。
作者: xiaoxing5    时间: 2013-3-24 20:26
百度搜索,有网友这么解决的http://hi.baidu.com/zhidao200808/item/9fdc1efc61bdcbc8531c26aa,但是本人试过以后还是只画出了其中一个,也没有错误提示,求解答
作者: xiaoxing5    时间: 2013-3-26 14:05
问题已在小木虫上解决,如下, V$ `* N! K3 E6 X5 U* o8 E
Plot函数可以有这样的形式的:; ~1 J% X! q3 G4 o; E$ @' i
Plot[{f1,f2,....},{x,x_min,x_max]}]  s! j- ^8 z# ^1 c! ^4 b( L
也就是说可以对同一自变量的多个函数进行绘图,所有曲线是在一张图(也就是你说的同一坐标系)里画出来的。; }% o/ X; v, [% U
所以,你一开始要求的画y=1,y=2,y=3,F(x)的图,用我以前说的那个是可以的。
+ X" B2 Z4 X+ d1 a/ p- w4 r% m再说你第二帖所说的函数,其中a是个变量,x是自变量。就是关于不同的a画多条曲线吧?; A9 j9 e+ X0 {
按照同样的逻辑,程序写成这样的:
% C. c) b& r5 t4 J4 \y = a x^2 + 2 a Sin[x] - 5
6 [, }8 [* \3 i# jPlot[{y /. a -> 1, y /. a -> 2, y /. a -> 3, y /. a -> 4, 1 |/ k& x/ f2 c( S4 }4 D8 y
  y /. a -> 5}, {x, -3, 3}]. p8 n$ p3 Z7 t4 A
看下效果是不是你要的?7 W! d) Z( `1 p' s
注:由于本人目前没有上传图片的权限,在此就不能把显示效果展示给各位看了,再次再次向小木虫的网友mshwangg表示感谢
作者: joy81890    时间: 2013-3-27 19:43
标题: RE: 怎么用Mathematica在一个坐标是里同时绘多个图
本帖最后由 joy81890 于 2013-3-27 19:51 编辑 0 A2 ?$ i# p6 j8 o' c* T5 S* k
! q$ {% ~0 a% w- P7 s
2013-03-27_074359.jpg
作者: xiaoxing5    时间: 2013-3-28 19:07
joy81890 发表于 2013-3-27 19:43

: ]* N3 F: ]' P# q9 }' Y! M  ?F = p1*(p2 + p3 + p4 - p5);
) \1 F$ k; H2 e  B; |% H) [0 oPlot[{F /. f -> 0.35, F /. f -> 0.40,
5 o- ?, G  l$ C$ @8 W    F /. f -> 0.45}, {x, -0.001, 0.001}, PlotLegends -> LineLegend[{6 N- n4 t: c0 Z5 d
      Red, Green, Blue}, {"y=1", "y=3", "y=0 w' b& Y2 Z! z
    2"}, LegendFunction -> "Panel", LegendMarkerSize -> {{10, 8}}], / e0 f5 G+ T0 g+ u( {) o& [
      AxesLabel -> {"x", "光 强I"}, PlotStyle -> {Red, Blue, Greenn}];4 ?5 F1 c" S' t8 ^
5 E/ |9 B# B$ |( o6 `# q% |
为什么我的程序画不出要想要的图呢?以上是最后画图命令。LegendMarkerSize -> {{10, 8}}这句话是什么意思呢?下面是错误提示' i" a) F3 i# |; O2 I8 v: i7 x* ~

/ E& G- R3 x1 P3 O; ]/ y& NUnknown option PlotLegends in \[LeftSkeleton]1\[RightSkeleton]
作者: joy81890    时间: 2013-3-29 07:59
xiaoxing5 发表于 2013-3-28 19:07
0 R  h8 j) h7 j" kF = p1*(p2 + p3 + p4 - p5);
; F; f  A3 D" u5 V4 R2 ^Plot[{F /. f -> 0.35, F /. f -> 0.40,
7 ?+ T$ p* ?' v; G+ @    F /. f -> 0.45}, {x, -0.0 ...

3 _# K: p# J- d3 c可能因为你用的是Mathematica 9 以下的版本,那样的话,就改为:
8 {* ?" W( X* p/ S0 |2 p" xPlot[{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"}]
6 x, k- `/ ~( r: T+ H2 @
6 \& \4 a# b& K2 U( E$ C 2013-03-28_195403.jpg ) B0 C% b2 G9 ^$ @# I
4 L. l9 f% o- g
有多种方法绘这个图,但这个是我能想到的最简单的,最常规的方法。“LegendMarkerSize -> {{10, 8}}” 是定义图例(Plot Legends Panel))大小。
作者: joy81890    时间: 2013-3-29 08:08
本帖最后由 joy81890 于 2013-3-29 08:12 编辑 / g. b, T! g" l- L. ]! z' d
# c2 P' j$ y# V( y8 y- y# s
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:6 g6 t' j3 k9 J( t8 e
+ |# d! ]% E* v, ?. h" V) ]0 i
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"}]( q& l* v, R/ Q8 g( @  o
+ P) ?4 i3 v3 k6 ]% j7 e* r" d- B/ l
2013-03-28_195403.jpg
* ~) b; ?# J1 Q$ p6 ]
! A* y( c  r/ i# B1 `$ v# w% w5 e; L6 t; Q& x& |: \
”LegendMarkerSize -> {{10, 8}}“是定义图例(Plot Legends Panel)大小。
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08
- c& e$ m) M0 w& D; @' ^那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
' e/ C5 l  S2 Z; E" |5 _4 P! m; H
Plot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...

2 Y/ A: M+ H  e6 ~9 [我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。6 c3 B% C0 a  ^9 W5 b. N
非常感谢热心您的帮助
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08
# x% x& O0 F* @- H9 N那可能是因为你用的是Mathematica 9 以下的版本,那就改为:! i! J* P# G; i! I$ h" F, P0 {4 L( G
, @! W" `) f  i8 v# g
Plot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...
+ E7 u- R# o" U( ^) S
我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
- @4 z  S# b7 }6 e# q非常感谢热心您的帮助




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