找回密码
 注册
关于网站域名变更的通知
查看: 505|回复: 6
打印 上一主题 下一主题

PLOT函数绘图时添加图例的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-12 13:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
3 A- I. V& D0 x
这是程序:
  • clc,clear all
  • WD=load('wd.txt');
  • wdsj=load('wdsj.txt');
  • time=wdsj(:,1);
  • temp = WD(:,[5 10 16 24 30 33 39]);    % 简化为1条的赋值
  • s=['rgbrkmc']; %颜色属性
  • u=['d*oxv+p']; % 点标记属性
  • v={'-',':','-.','--','-',':','-.'};%线型
  • for j=1:7
  • %plot(time(1:2),temp(1:2,j),[s(j),u(j),v{j}])
  • plot(time(1:1:end),temp(1:1:end,j),[s(j),v{j}])
  • plot(time(1:200:end),temp(1:200:end,j),[s(j),u(j)]) % 间隔5个点画图
  • grid on
  • hold on
  • end
  • xlabel('时间')
  • ylabel('温度')
  • title('温度-时间曲线')
  • legend('西塔外侧塔壁','西塔内侧塔壁','纵向弦杆1',....
  • '纵向弦杆2','正交异性钢桥面板','上游主缆','下游主缆')
    ; m8 I/ o5 H+ W% B- H+ y  }' w, O
+ K( \/ D9 g: h3 H# k+ I$ f2 v" }! T
$ ?: q, R. ?8 w" J

( G- p/ U8 G' q9 j% t: h0 ?: s4 \. k2 @' p! y% G$ b8 F" v3 f
第一个for循环里的第二个PLOT运行的话是这张图
, S; r6 Q5 v- o3 O, `  ]+ N& F8 W9 E
% N( x1 z' o1 o& _
1 K* ~; T7 R) H" k

# \4 i# `9 Y. N6 ~. G* M; ^  s! ]( c8 A$ n0 c
# U: f2 C: j$ l/ A" x) K" ~
这一句要是加上点型u(j)  就会很密集  是这样的( [% U: ^! T* a( V- v

' f4 m& s& ]+ r+ r: \! T
7 s& W8 S* i& D0 h
, G, Y- f/ q, r4 q

/ C9 n/ \. a$ b+ ~6 v+ c* ]) h2 T0 G$ h: Q* z
这时图例上线型点形都显示出来了
6 _5 r7 @: \6 ^' {* q) u: n  K5 s5 ^" v% A+ M& M5 c

* |" ^3 Q0 A- V" P0 `0 k$ X* I要是第二第3个plot都运行  就是这样的; L0 T' D! A' N% }) j5 O: H
/ c/ V1 }' S& ^" T
: j* O6 g% n( l8 c  Y+ o0 u$ u

: E& [& L, b" y3 d8 @. P! R* c: \) P

5 Y$ |; T, {0 U8 k( D/ A
6 d. R/ l/ w' R1 ]+ T9 }1 Q4 l& _- r& _0 e
这时的图例是跳着显示的,只显示线型或者点形,+ R) |5 l) Y+ x

+ v- Z( N2 o, d2 ~0 H第一句PLOT是网上说取头两个点让图例读取这个图  但是加上也不行,
. v0 o3 K$ {: W2 M3 J
2 B' c. L! ^4 B3 ]9 t3 B4 w9 U' d* K因为我的点太多了,所以要是点间距取的小就很密集,但是取的大图就太不精确了,所以我的想法是先把线画出来,然后再在图例间隔大点取一些点画上,这样既能区分每条线 又不密集,但是图例就出现了这个问题。
: l; C5 |/ q0 K2 ~/ z9 J" G( x& T* K$ \% q2 D) ]) Q
所以请大家帮忙解决下哈!8 [# N1 E  Z$ W% J

) ^( C3 D  x! u- k
) M' J6 T: I! i, n' E1 |- K  L8 Q0 e! a

7 t& I: N0 F, D, e
8 U9 W/ Z6 ~+ h! s/ o. V7 l6 M7 o1 S% b

该用户从未签到

2#
发表于 2020-5-12 15:02 | 只看该作者
看下面这个行吗?
# [2 {/ T: @7 }, F- O' S: k$ t+ U; K/ {' \
h1 = plot(0:0.001:1,0:0.001:1,':r');
9 [5 l* G+ l" Qhold on;; M" M* u) M- P2 j5 A' t
h2 = plot(0:0.1:1,0:0.1:1,':r*');+ d! I' Z. J8 W) P; H
legend(h2,'a')

点评

谢谢啦 根据你的语句 我又尝试了下 已经可以了,这是修改后的那部分 [*]for j=1:7 [*]h (j) = plot(time(1:2),temp(1:2,j),[s(j),u(j),v{j}]);%用于添加图例 [*]hold on [*]plot(time(1:1:end),temp(1:1:end  详情 回复 发表于 2020-5-12 16:03

该用户从未签到

3#
 楼主| 发表于 2020-5-12 16:03 | 只看该作者
xiaogegepcb 发表于 2020-5-12 15:02. j3 |! B7 C0 E
看下面这个行吗?) M, o( B# b) a/ y7 H3 {7 T
- q5 |* z/ @  J" K
h1 = plot(0:0.001:1,0:0.001:1,':r');
( J4 o% A3 d. Y% a/ @
谢谢啦  0 p5 J, H5 P" i. V5 v; s
根据你的语句 我又尝试了下  已经可以了,这是修改后的那部分
  • for j=1:7
  • h (j) = plot(time(1:2),temp(1:2,j),[s(j),u(j),v{j}]);%用于添加图例
  • hold on
  • plot(time(1:1:end),temp(1:1:end,j),[s(j),':']);%全部数据点绘图
  • hold on
  • plot(time(1:200:end),temp(1:200:end,j),[s(j),u(j)]); % 间隔5个点画图
  • hold on
  • grid on
  • end
  • legend(h,'西塔外侧塔壁','西塔内侧塔壁','纵向弦杆1',....
  • '纵向弦杆2','正交异性钢桥面板','上游主缆','下游主缆')

  •   \! t6 }9 G$ }) k- U7 p9 l
/ ~2 n! I- L) y5 d
6 m# z0 l8 c! r

+ @  j, q$ i# T9 \, c这样就能都显示了
6 f, ?: A1 P0 b. t万分感谢
2 H- c4 Y5 D! U9 ^  o0 b  K5 @8 x6 z( Q$ t) \  e

该用户从未签到

4#
发表于 2020-5-12 16:04 | 只看该作者
02. h (j) = plot(time(1:2),temp(1:2,j),[s(j),u(j),v{j}]);%用于添加图例  这句能详细解释一下吗学习中 谢谢

该用户从未签到

5#
发表于 2020-5-12 16:05 | 只看该作者
好厉害的MATLAB

该用户从未签到

6#
发表于 2020-5-12 16:18 | 只看该作者
楼主牛逼啊,坚持才是硬道理

该用户从未签到

7#
发表于 2020-5-12 16:34 | 只看该作者
之前matlab仿真也遇到过这个问题,没解决就放弃了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-18 13:26 , Processed in 0.156250 second(s), 30 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表