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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
6 D$ @( C  J. K8 l
这是程序:
  • 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','正交异性钢桥面板','上游主缆','下游主缆')
    4 c4 S8 k5 t( |, I- p3 f. s( t1 i

- Q. y& T# z5 U# W! p1 a7 [; ^' ]! O7 W5 Z3 G% {
- f  D8 u! N! r/ Y

5 A& ]$ T4 z- p1 E第一个for循环里的第二个PLOT运行的话是这张图. T/ L0 e! D. @% {
" `& s. |: j5 S7 c( f- J! K+ `! q

9 Z& R) o2 B& b/ n% O7 r7 o( O
# T) ~3 f2 W& \4 q6 B# l
9 P! q- v5 N( i$ F/ y% A$ d! {

. o$ x4 Q6 ?( o1 L8 C5 e这一句要是加上点型u(j)  就会很密集  是这样的' Z& V% U2 N/ X- l: i

$ a6 d( m* H/ Z  [4 H4 ?" N) c* S, q6 ]) T( f! n) Q" e$ T) |

0 W, L4 s- k1 j* A: Z& B9 P

! N  B7 W) C- g+ y, M. x0 b8 B: d1 I, g
这时图例上线型点形都显示出来了
' r$ z5 N9 a! l6 a( A
% `, Y6 s# b) L  k, B
7 W9 v' K' l  E) ^; L! G要是第二第3个plot都运行  就是这样的
1 B/ ]' M$ _/ M$ S5 w
' `1 z# B( h/ R

, v% h* y: s$ e  {$ U. k5 c5 B7 V5 m1 s* f

: i/ G. Y: a' _
; n' R( D" w. _% u- R6 @5 ?
5 I6 c' u& O2 z
( x/ @7 ^* k4 |2 d
这时的图例是跳着显示的,只显示线型或者点形,$ L! B  M! c0 e- x' f  P
  G  ~5 Z$ p  j
第一句PLOT是网上说取头两个点让图例读取这个图  但是加上也不行,: h  `6 ~) |3 O6 X

% J& r0 m8 c" n; c. d* y因为我的点太多了,所以要是点间距取的小就很密集,但是取的大图就太不精确了,所以我的想法是先把线画出来,然后再在图例间隔大点取一些点画上,这样既能区分每条线 又不密集,但是图例就出现了这个问题。* B# D" m8 W+ r& \2 W6 c
8 f) g' }: V% x
所以请大家帮忙解决下哈!
! J& H# A0 Y+ Z/ [0 B9 V7 p. G7 S

: N5 |' _1 o( i% R4 s# M  \4 n0 O
- c+ X, s4 Z5 ~4 X$ f, U) M8 w. c3 C# n' d" W: J- k* p! ?
% b3 a# I5 c( i+ H1 l4 \: g% R) Z! H* v

) W6 ~5 b+ H! q' w/ o0 C

该用户从未签到

2#
发表于 2020-5-12 15:02 | 只看该作者
看下面这个行吗?
/ b8 |5 _8 K+ M9 h2 B
$ k; J( l- D! J' ~h1 = plot(0:0.001:1,0:0.001:1,':r');
! H* r" E: j9 j6 _  B; Lhold on;
( A% Q0 ~. R) |: S8 rh2 = plot(0:0.1:1,0:0.1:1,':r*');
" w3 S. e: G3 p. u0 Klegend(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:028 H- b1 q% Q7 z- p
看下面这个行吗?9 ^- `5 l- ~7 d4 n# n& o7 E

! B' N( N7 s! A- A$ u" Fh1 = plot(0:0.001:1,0:0.001:1,':r');

8 Z7 h6 V  N3 n' M! l% j- C谢谢啦  ' F3 I0 D% u5 v$ V5 ^
根据你的语句 我又尝试了下  已经可以了,这是修改后的那部分
  • 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','正交异性钢桥面板','上游主缆','下游主缆')

  • $ w0 F$ V" y* D4 W0 I2 C

5 f: }3 Z- X1 |& ~
2 @* K, v( T0 M( Z5 \5 o& e
: i0 X. r/ A. {3 S
这样就能都显示了
$ L) s( O4 o' \: Q' ~万分感谢
4 g1 P5 @8 B5 }" W+ u6 W/ n1 ]8 `6 S# E% 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-11-24 05:40 , Processed in 0.171875 second(s), 30 queries , Gzip On.

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

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

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