数学建模社区-数学中国

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

作者: xiaoxing5    时间: 2013-3-24 19:07
标题: 怎么用Mathematica在一个坐标是里同时绘多个图
例如函数F(x,y),怎么使用命令在同一个坐标系里绘制y=1,y=2,y=3,F(x)的函数。并在图中用不同的颜色表示,并说明那种颜色是哪个图。求大神指点!!
- ?% F$ ^' _9 a急急急。。。。在线等。。。。。
作者: xiaoxing5    时间: 2013-3-24 20:26
百度搜索,有网友这么解决的http://hi.baidu.com/zhidao200808/item/9fdc1efc61bdcbc8531c26aa,但是本人试过以后还是只画出了其中一个,也没有错误提示,求解答
作者: xiaoxing5    时间: 2013-3-26 14:05
问题已在小木虫上解决,如下. P6 n0 K9 K8 O9 S0 I" e1 b
Plot函数可以有这样的形式的:
, T. o  X4 Z2 M& ]( v* yPlot[{f1,f2,....},{x,x_min,x_max]}]' W& k) D* j* ^. A+ l, e8 c: _
也就是说可以对同一自变量的多个函数进行绘图,所有曲线是在一张图(也就是你说的同一坐标系)里画出来的。: l2 ~4 K- g+ \4 K. w( V# `
所以,你一开始要求的画y=1,y=2,y=3,F(x)的图,用我以前说的那个是可以的。' r; w9 E1 E# m
再说你第二帖所说的函数,其中a是个变量,x是自变量。就是关于不同的a画多条曲线吧?
* D# r) B5 e9 E; d0 v6 b按照同样的逻辑,程序写成这样的:; `# H- S- p( @; b8 t
y = a x^2 + 2 a Sin[x] - 5
4 p) t8 b; a& g" p- m" }4 |( b! L& DPlot[{y /. a -> 1, y /. a -> 2, y /. a -> 3, y /. a -> 4, 5 q. P4 [) I) j; s; _
  y /. a -> 5}, {x, -3, 3}]0 v3 @6 g/ }- ^8 a0 D6 `, b  C+ n) Q: F
看下效果是不是你要的?
" M  s; ~2 r( _  g注:由于本人目前没有上传图片的权限,在此就不能把显示效果展示给各位看了,再次再次向小木虫的网友mshwangg表示感谢
作者: joy81890    时间: 2013-3-27 19:43
标题: RE: 怎么用Mathematica在一个坐标是里同时绘多个图
本帖最后由 joy81890 于 2013-3-27 19:51 编辑
  X! j% p7 f: Z$ W. l# `' E+ I# b! Z) G* Y; C  \2 r
2013-03-27_074359.jpg
作者: xiaoxing5    时间: 2013-3-28 19:07
joy81890 发表于 2013-3-27 19:43

3 r4 W. F9 F8 P! RF = p1*(p2 + p3 + p4 - p5);
5 \0 o* B; H: M) e4 Z, T( BPlot[{F /. f -> 0.35, F /. f -> 0.40, 1 }+ s0 d( e  }2 v; n4 \. }
    F /. f -> 0.45}, {x, -0.001, 0.001}, PlotLegends -> LineLegend[{
2 x1 ], b/ k  X8 j# q" W      Red, Green, Blue}, {"y=1", "y=3", "y=
: h; G$ w8 P2 o/ A5 S$ A; Q    2"}, LegendFunction -> "Panel", LegendMarkerSize -> {{10, 8}}], . ]+ \( O. A, k* a; o4 @/ L
      AxesLabel -> {"x", "光 强I"}, PlotStyle -> {Red, Blue, Greenn}];5 d% E- |" W2 u% A  h
  R! w7 P2 B, N
为什么我的程序画不出要想要的图呢?以上是最后画图命令。LegendMarkerSize -> {{10, 8}}这句话是什么意思呢?下面是错误提示
: N' G5 B9 _( Z% l3 j/ ^0 _/ r8 |9 V0 z* @' E/ @% @: N
Unknown option PlotLegends in \[LeftSkeleton]1\[RightSkeleton]
作者: joy81890    时间: 2013-3-29 07:59
xiaoxing5 发表于 2013-3-28 19:07
7 `( `- u! k" R9 q* p9 ~' aF = p1*(p2 + p3 + p4 - p5);/ {- A# d7 q( @8 ?& C! j" R! V
Plot[{F /. f -> 0.35, F /. f -> 0.40,   M9 j9 {4 ]& b: {
    F /. f -> 0.45}, {x, -0.0 ...

8 G1 L( O1 l* J- K可能因为你用的是Mathematica 9 以下的版本,那样的话,就改为:
! t! Z" \/ I+ T. F& e  KPlot[{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"}]
3 j2 S4 h% p; p8 d* v/ V( M6 b$ {0 F! e; U( Y+ l1 z
2013-03-28_195403.jpg
$ _  x/ c# ], J5 t! _8 L# u$ [
- C" e- R7 w, y: O有多种方法绘这个图,但这个是我能想到的最简单的,最常规的方法。“LegendMarkerSize -> {{10, 8}}” 是定义图例(Plot Legends Panel))大小。
作者: joy81890    时间: 2013-3-29 08:08
本帖最后由 joy81890 于 2013-3-29 08:12 编辑 9 t* }% b- c3 X$ [8 u7 C4 b

  L+ Z1 U4 u& m2 b8 j7 a) F) D) Y( i那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
  s7 f1 t' V$ {: \: A0 l2 h. G4 `) Q$ t9 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- ~; V+ A$ k, E$ [

9 o: h4 \( {7 d* C* `9 M7 j/ k 2013-03-28_195403.jpg
  b' ~. E' \# A; M  a1 R9 E
% p8 z: d- X$ n, J. c& ?1 P; S. f' D/ k- ~$ p
”LegendMarkerSize -> {{10, 8}}“是定义图例(Plot Legends Panel)大小。
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08
" z- ^* {* F  b: P( z, V! L  X, `那可能是因为你用的是Mathematica 9 以下的版本,那就改为:
/ o! R0 r- z% c2 s
4 Q+ d! ?8 F/ x5 S6 wPlot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...

( b+ S8 o+ ]8 d/ m4 z" Y我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
# S6 ?7 i& k+ V! _1 P, _非常感谢热心您的帮助
作者: xiaoxing5    时间: 2013-4-7 09:51
joy81890 发表于 2013-3-29 08:08 : k& a4 ~  _1 \: I+ }9 i
那可能是因为你用的是Mathematica 9 以下的版本,那就改为:) K, \/ x+ U" K7 W! @
. y& T4 Q6 ]" e# U$ V5 d
Plot[{1, 2, 3}, {x, -0.5, 3}, PlotLegend ...
) r  s2 s7 _2 a9 x
我用的是5.0,可能是我用的版本太低的缘故吧,系统一直提示不能识别操作。
2 j& c0 s7 u' Y) Y$ r8 e2 o非常感谢热心您的帮助




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