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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
9 d7 v, n$ h3 t; b8 q
这是程序:
  • 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','正交异性钢桥面板','上游主缆','下游主缆')
    ! P  o- M, I6 T3 ^

! g' v' U/ x4 G# z! H
' P1 h- u4 `) g& \# H* c1 e/ ]+ {4 f, `1 A

& }6 T9 n5 U+ K& D, W* {第一个for循环里的第二个PLOT运行的话是这张图
0 i  {3 d: ?4 a# a- r  _0 v

8 E) x; p) N- F6 }8 Q, C; R1 C: H5 `7 q
7 @1 C2 V' j1 ^# K. ~7 B
0 E' r! J' i" \0 ]9 A# ~  u+ h# h

" D0 R' i% f' V" f这一句要是加上点型u(j)  就会很密集  是这样的% P! k' j! _- f* n0 `& Z! Q& z
; F4 F8 d' U* e
" O8 y, j! S4 c& V
" L/ g" ]8 x/ T6 h. x- q) A! i

& D; V0 m( ]+ F3 d& i1 o+ M* D) i2 L7 _  Q' j/ P8 M$ M
这时图例上线型点形都显示出来了
2 i0 E& P3 j8 \) a& ^, e. f3 D0 ^; c6 T$ g4 Q4 O+ i' e4 r( h7 }5 n; p

& X/ {! a! t$ }要是第二第3个plot都运行  就是这样的- Q) l6 L" b+ H
) z' Y) x  e% P* T8 ~

" ]1 s8 r6 K, s2 D9 l% k8 @" m0 t
! u" {" U! u) `1 q+ W5 j' _2 ^9 ?1 T5 [+ w7 h* ~& I' y5 B
$ P' K1 B, K: K8 T* L# V

" o: ]8 e8 ?; k& q+ j4 P, v8 J; R! t
" ?  v1 E0 U- O3 J: A/ d* Z7 N这时的图例是跳着显示的,只显示线型或者点形,
0 [5 c) G4 |- y( j2 P1 p7 l3 n" f, `% a& G+ v2 S) z8 {- F4 d
第一句PLOT是网上说取头两个点让图例读取这个图  但是加上也不行,0 M, l3 }, W. }/ p( k8 }
0 p# O( |. s! H
因为我的点太多了,所以要是点间距取的小就很密集,但是取的大图就太不精确了,所以我的想法是先把线画出来,然后再在图例间隔大点取一些点画上,这样既能区分每条线 又不密集,但是图例就出现了这个问题。6 b9 ^2 v8 S) j

" h, Y  w8 L3 ]所以请大家帮忙解决下哈!
# W: A6 c: ~' `' i; U, S. _. u( o2 M: N& {) j, N0 n

: o1 |4 P  w' k$ {8 r% d+ t6 ], O
5 }- u3 Y* ?/ r0 H7 h3 l, D0 K: ?  D& g2 r: \/ j
3 l1 m3 w1 F1 B7 h
' P3 H4 U0 E- T9 X5 B% G" n, i- O

该用户从未签到

2#
发表于 2020-5-12 15:02 | 只看该作者
看下面这个行吗?. S' [7 p# N% [' i+ G# ]- p$ p

$ n, P! f/ g& m5 m5 o; E. jh1 = plot(0:0.001:1,0:0.001:1,':r');( l  O5 U7 I' q' R5 Y
hold on;- `5 y  ~3 B0 j' }' F3 `5 H
h2 = plot(0:0.1:1,0:0.1:1,':r*');) d! u$ a6 y4 U0 [  B
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
  z  S& t' b  U* Q* B看下面这个行吗?8 R) {: V5 Z4 c. R8 ]4 }1 ^

" X6 C* ~! k; Kh1 = plot(0:0.001:1,0:0.001:1,':r');
7 `, M1 G$ ]1 }2 A  s* x$ Q
谢谢啦  
( f! g1 O3 H$ ]; y根据你的语句 我又尝试了下  已经可以了,这是修改后的那部分
  • 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','正交异性钢桥面板','上游主缆','下游主缆')

  • ! h: J$ O* n) t/ Y( O

7 m) `0 o5 [7 Y. ~0 l( R( {$ Q+ i5 d- E; n

! }. r. n7 Y1 v! D) w2 C这样就能都显示了 9 D" Q$ X. |0 X8 S# A
万分感谢
/ {" D- y0 i' A( z+ ~( C: D2 y# o7 U
1 j6 f: f+ q) D$ A: |  ?

该用户从未签到

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-11-6 05:05 , Processed in 0.187500 second(s), 27 queries , Gzip On.

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

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

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