如何利用MATLAB画出不被导师嫌弃的图像
# j, u5 m3 x$ z/ U" Y9 p' Q( F. g6 z) ~# U$ F+ i; ~
什么样子的图不会被导师嫌弃?当然是能够简洁、清晰的将信息表达出来,让人一目了然的的图了。导师们都很忙的,没有时间把时间浪费在研究你的图上,一般看着不顺眼的图直接告诉你重新画,心情好会给你指点一二,心情不好就说图画的不好,你自己看着办。所以我们要知道,写报告也好,画图也罢,都是为了让人家看的,你得首先让对方看懂你的图,而不是自己看着顺眼就行,结合我被导师怼的经历,介绍一下什么样的会被导师喜欢吧。4 _) f4 O; D$ l6 z0 M
第一步 数据准备; O O6 P: B& [
; ^9 s' z8 I* A6 k: _
画图当然得有数据啦,没有数据,白板一张,还不如直接告诉导师,我没做出来更直接一些。这里我偷下懒,用一个三角函数对付一下。
* L* F) u0 Y4 E- |0 jx=0:0.1:10;y1=sin(x);y2=cos(x);
9 |- V O$ S/ {+ [, M8 ex是横坐标,y1和y2是纵坐标。2 c7 R* `; X1 F. H" @6 A
第二步 画图! _5 Z3 y* b. `/ e$ b
1 Z3 s2 `3 _0 {, ?& a MATLAB中最最常用得画图命令就说plot了,当然大多数情况下plot就够了。
# H, T2 m: f7 y' D0 qfigure(1)plot(x,y1,x,y2)
8 v# a' }9 F( \# D% V
/ @; ^7 X# ?* {# x' f+ S: j1 A: T Y9 q2 |4 J) K
你要是敢直接把这样得图给导师,那我估计你的鸡腿是没有了。你的图是干嘛的,标题呢?横纵坐标轴得标题呢?你说这是啥,正弦和余弦?我读书少,不认得这俩曲线,你给我标注一下吧。然后就成了这样:
l- Z3 x. S- k5 A* z4 N& i' l% afigure(1)plot(x,y1,x,y2)title("正弦/余弦函数图像")xlabel("相位")ylabel("幅值")grid on
. K8 H! K/ u. i现在看起来差不多了,可是老师喜欢某些颜色怎么办,那就是第三步了。) s3 e0 V. v9 d" N' o
第三步 设置线条颜色5 H6 J- {' V% [: I; u t H
0 C9 J# L6 g- M# n
先给出常用得颜色设置吧:. N% j$ k9 Q8 o! A6 x7 f
/ B% Z4 Q! i, t7 X7 o2 J
& x3 } `7 J* h9 W3 N然后有了如下得代码:# H& X6 y3 N. Y5 M9 R
figure(1)plot(x,y1,"g",x,y2,"b")title("正弦/余弦函数图像")xlabel("相位")ylabel("幅值")grid on
% d1 f0 ~1 X6 b. D) e
8 R4 H% V* _' F( z7 R) L
) c+ s) F& N/ G第四步 设置线型和标记。
/ V) ?5 q4 O. {# Q; z7 d J* _: a4 \ E+ d" n7 ~
如果你足够优秀,可以发论文的话,你的导师会告诉你,有的期刊只能发表黑白得文章,所以用颜色区分不太合适,所以区分一下线型吧。所以,先给出常用得线性和标记。) }# [0 {; K5 Y2 T' l8 l
$ ~0 ^6 ]4 e3 y. Z: h- j" b
t r# J, g3 d8 d7 K6 e/ ]
* H- V, q$ z# L# X/ H
4 c/ W! D& f0 d% h9 X4 J4 S- n2 [# [( ]/ g# r7 i# G" v8 X
' z3 f( S- A% R' I9 K) b% w; h用线型区分开来:
; | Y3 z$ ?1 p$ z. R( {" Tplot(x,y1,"g--",x,y2,"b-.")
. Y4 o) L+ [1 Z1 Z* Z还可以在每个数据点处做个标记:' [/ W/ y6 t3 d, i* {' `
plot(x,y1,"g--*",x,y2,"b-.x")
# O2 U( H6 y1 b$ A! Y4 e以为这样就完事了吧,你的要求我都满足了,可是,你得导师还会问,你这两条线,分别是啥啊,那个是正弦,那个是余弦?这时候你咋办,怼回去,你不认识正弦和余弦?我觉得你还是算了,乖乖得画上图例吧。' v; P5 ^2 q/ k( N0 o. V8 P$ _4 J- P
第五步 图例6 ^" T) o: H* Y0 s2 _
9 ?( O% q4 }/ y) Y e! {( t马上就是最后一步了,直接上代码:
* _, K8 D' C* R# Pplot(x,y1,"g--*",x,y2,"b-.x")legend("正弦函数","余弦函数"): U- N1 e" h# o" g4 G$ Z/ ^) J
/ L5 S5 v# r/ \& U* ]1 j# Z
0 V0 W8 I& T# r: |9 H3 D
好了,这样的图,能看懂了吧。! v6 j9 Q6 ~" p8 K# J, `/ S7 Z
第六步 设置坐标轴范围7 [- N& B4 N* Y; Y# Z; D
, ]$ N# _' k1 { M2 k4 O7 p如果你觉得这样得还不够完美,还可以设置一下坐标轴范围:6 E6 Q! ?& _0 c8 t' b& p
用的是axis([xmin xmax ymin ymax])函数。% L- L" I: b# U) R* v6 {) j
完整代码:
* @' H, z& G8 o3 ]x=0:0.1:10;y1=sin(x);y2=cos(x);figure(1)plot(x,y1,"g--*",x,y2,"b-.x")legend("正弦函数","余弦函数")axis([0 10 -1.2 1.2])title("正弦/余弦函数曲线")xlabel("相位")ylabel("幅值")grid on
9 I9 {" g4 a6 N1 Q6 t3 z- A$ l- N$ Y7 G$ T, v% k
! i. i+ Z- I* E3 _
总结起来就一下几点:& a0 _+ F5 J+ S6 _
- 完整得数据
- 标题、横纵坐标标题
- 设置颜色
- 线型和标记
- 添加图例
- 设置横纵坐标轴范围* i+ z# B0 {1 A; t
|