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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
' W( J- G$ f' o6 W- }/ J0 f
这是程序:
  • 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','正交异性钢桥面板','上游主缆','下游主缆')
    : P6 M$ |' r( |) i: p% t8 e) D5 ~
; C$ o* W6 N1 J9 }7 E0 ?3 R/ K
5 N% X* j( @. m3 I& ^+ ?8 d1 v

6 v9 c* A7 I7 W( ~; Y9 u
5 c9 @# N9 S" Q# W第一个for循环里的第二个PLOT运行的话是这张图
' J6 I& v" {; R4 t4 G% B+ F

8 I/ z, b- ]# t  @6 u
% I+ F% A3 K, z9 Q; r" t; n8 M. m* A

1 u! c; \- p9 W0 L* L0 U  o# p* Z2 i
# y+ c' T" W8 _# H! `6 F4 q
这一句要是加上点型u(j)  就会很密集  是这样的
% O, q7 d2 b7 k5 G
! V8 m3 k* j- `6 c4 s) b3 X

2 q7 Y# x, C8 M$ s
/ f+ o, q" N3 S2 @# \

  j3 D  T6 s3 y4 U' U' g
3 c' U, U8 s/ c' M( `这时图例上线型点形都显示出来了
. d  }( H% C$ K# W1 X& V% S9 c9 _2 ?4 R6 N/ ^! D5 Q2 S

2 \3 d/ Q$ u( W- {要是第二第3个plot都运行  就是这样的/ q( Q1 N# L7 q" o  H8 M
! H: a; G& @4 \3 ]

0 ^$ B1 v2 w. M3 [, c. u, g
# G' [: Y+ B7 E' H( d# u% Z' x  q& |/ X

5 {. H4 }5 ~) q; J0 {
- a8 f& b/ f: s+ S% J
$ n2 I( }" V% T7 l2 D8 y  ]这时的图例是跳着显示的,只显示线型或者点形,
, g) E; m; N) _
" E# u# |, f) m5 U  |第一句PLOT是网上说取头两个点让图例读取这个图  但是加上也不行,
3 J9 ]4 |6 F) Q6 o$ h
: A) L' ?0 |5 d3 u# A7 f- p因为我的点太多了,所以要是点间距取的小就很密集,但是取的大图就太不精确了,所以我的想法是先把线画出来,然后再在图例间隔大点取一些点画上,这样既能区分每条线 又不密集,但是图例就出现了这个问题。
4 U/ w) M$ u' a! Y. A  W% \
7 k' |! K* l; G1 K0 {所以请大家帮忙解决下哈!
7 S( C! V& G4 h. _7 T
! |5 x3 f+ w7 J8 O6 C( X0 s% }2 d4 F8 Z) Z- Z
/ y7 t& r' W8 I/ e. h

9 {& b9 J( q  ^2 j
6 Z8 A  W/ n4 X8 H( s) r. w7 n- f& ~4 Z9 G0 u, c

该用户从未签到

2#
发表于 2020-5-12 15:02 | 只看该作者
看下面这个行吗?
: m4 \2 i/ Z0 N: v  ]+ k1 {. h2 b3 K; O1 N: `* l. w( h
h1 = plot(0:0.001:1,0:0.001:1,':r');0 n8 Y7 u/ o0 C5 v7 C
hold on;9 J9 s2 E' U, q* |. [2 y
h2 = plot(0:0.1:1,0:0.1:1,':r*');
- ^& R- i6 N9 k2 C% Plegend(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
3 {1 g! E  l6 E; r0 A看下面这个行吗?
/ G6 Z7 ?% m6 [+ H% M% E5 }5 U  k+ f. B. Y& ^3 Z
h1 = plot(0:0.001:1,0:0.001:1,':r');

9 c1 r0 E' @: O3 B7 X# J- u谢谢啦  
2 X7 r9 C( B0 t  v* ^4 b% @6 i! d0 z根据你的语句 我又尝试了下  已经可以了,这是修改后的那部分
  • 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','正交异性钢桥面板','上游主缆','下游主缆')

  • / {: y2 c: G( D3 o+ ]

3 i6 W/ p1 w9 L9 M5 o
8 d0 l3 N5 C0 L/ r3 ^' }2 A. b* n
1 ?7 L! F  y; G/ y1 M1 O
这样就能都显示了
" l0 n+ B& I) @- f' S0 A% Y万分感谢
; w& U: p! [5 F, ?& ^/ o$ L
" l9 s; s3 ?+ y; Q, R5 x# Z# P

该用户从未签到

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-24 08:01 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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