QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5196|回复: 0
打印 上一主题 下一主题

[代码资源] 关于matlab画十字坐标

[复制链接]
字体大小: 正常 放大
mudan 实名认证    中国数模人才认证   

19

主题

2

听众

994

积分

  • TA的每日心情
    奋斗
    2020-3-27 12:01
  • 签到天数: 173 天

    [LV.7]常住居民III

    邮箱绑定达人

    群组: 数学建模培训课堂1

    群组: 2011年第一期数学建模

    群组: 小草的客厅

    群组: 科学狂想曲

    群组: 学术交流B

    跳转到指定楼层
    1#
    发表于 2012-10-31 17:16 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    本帖最后由 mudan 于 2012-10-31 17:20 编辑
    6 H2 d6 u7 q  m/ h$ L" ?& Y! M/ e
    * U9 ?* y6 ^$ V: H今天忽然想到如何用matlab画十字坐标,不过句柄方面确实用的不熟,便从网上找到一段程序,经测试可用,如果使用时不想有边框,可再加上axis off和box off两条语句,程序源出处是http://www.ilovematlab.cn/viewth...p;extra=&page=9
    1. function plot_to_center(x,y,Xticks,Yticks)  b( x( D( d4 g1 [5 ^+ D% a
    2. if nargin~=2 & nargin~=4 %输入不满足要求则报错4 G* l7 x6 i8 V
    3. error('??? 输入参数个数不对');
      * ]4 j% O. h* L  p
    4. return;5 Z) Q' P' G, D6 b& Q8 g# B% `
    5. end& k0 K! [- c4 i! o
    6. figure;7 |# I) L) _0 C5 ^! r3 R/ a
    7. plot(x,y)
      0 d% H$ k% |+ _  |
    8. set(gca,'xticklabel',[])%不显示x标注
      ' b% ~8 P% g: y+ U
    9. set(gca,'yticklabel',[])%不显示y标注4 v9 x) f. V- i0 S: `- t
    10. c=get(gca,'color'); %获取axes背景色
      . e3 m7 h, V: w\" b8 f
    11. % set(gca,'xcolor',c,'ycolor',c) %设置标注杠颜色
      / V# n\" L6 X) j: F8 M1 [% H6 D/ z
    12. grid on %加上网格$ w0 y: f1 k& t/ C) g5 R$ _
    13. if nargin==4/ Z0 W/ X4 X3 U. \: a. U
    14. set(gca,'Xtick',Xticks); %设置Xtick
      ' [9 h: J2 w& P$ \# l8 o7 ]# |
    15. set(gca,'Ytick',Yticks); %设置Xtick% [# T5 h$ l  x0 b+ g
    16. xlim([Xticks(1),Xticks(end)]); %设置x范围
      7 {0 D( I7 X- Z5 C2 G\" s. D- G
    17. ylim([Yticks(1),Yticks(end)]); %设置y范围
      * q) I* S' o& W5 n; [
    18. end  a! A% q( b9 I! N\" u3 O7 M. {
    19. x=get(gca,'XTick'); %获取Xtick2 p) u\" U$ B+ f4 f. o, h
    20. y=get(gca,'YTick'); %获取Ytick
        E% q2 e- d5 K( S+ H; {- y
    21. xL=xlim; %获取X范围$ l& i2 L' Z8 L( m) A% {  a
    22. yL=ylim; %获取Y范围
      ) Y0 |# Z, j) \, J2 r1 N
    23. xcenter=mean(xL); %X中心2 A$ u% V' h$ |( Y4 v
    24. ycenter=mean(yL); %Y中心; L0 }3 K8 i6 k
    25. xrank=xL(2)-xL(1); %x跨度0 B) g9 u0 Q9 M0 e
    26. yrank=yL(2)-yL(1); %y跨度
      \" U7 l* a2 [0 }( o# B. U
    27. hold on;. a! [/ P) l6 S! m5 c& g
    28. plot(x,ycenter*ones(size(x)),'k',xcenter*ones(size(y)),y,'k') %画坐标轴
      $ V# I- c# \& q6 M2 b9 H
    29. ax=[max(x),max(x)-0.02*xrank,max(x)-0.02*xrank;...
      \" W* @* m3 J5 n! Z. H) ]1 r
    30. ycenter,ycenter+0.01*yrank,ycenter-0.01*yrank];
      \" Z- C\" B% O' Q- ?* @8 u, |, P
    31. fill(ax(1,:),ax(2,:),'k'); %画x箭头: a: ]5 g$ a2 r- }# p
    32. ay=[xcenter,xcenter+0.0065*xrank,xcenter-0.0065*xrank;...+ E& J\" A3 P. ?
    33. max(y),max(y)-0.03*yrank,max(y)-0.03*yrank];+ P) r+ M\" ?, {/ F1 Z5 p6 j! w* r) ^
    34. fill(ay(1,:),ay(2,:),'k'); %画y箭头
      , Q) ~; N: `# q0 Z( V& z
    35. Lx=length(x); %x的长度
      : g6 O$ f. h& a
    36. plot(repmat(x(1,2:end-1)',1,11)',repmat(ycenter:0.002*yrank:...  Y7 V! G* N0 C) S# ~
    37. ycenter+0.02*yrank,Lx-2,1)','k') %画x标注杠
      9 l4 x% w1 J- ~- n; |3 K! V3 O
    38. Ly=length(y);- Y; S, Z8 s( X0 s
    39. plot(repmat(xcenter:0.002*xrank:xcenter+0.02*xrank,Ly-2,1)',...
      % f, T2 h. `. g# A1 d
    40. repmat(y(1,2:end-1)',1,11)','k') %画y标注杠/ q9 {- ]: Q2 b\" x5 t4 M: {; [, n
    41. for i=1:Lx5 J3 N& [0 X' a
    42. text(x(i),(ycenter-0.03*yrank),num2str(x(i))); %x标注
      ! c* l$ W/ d2 a& }* j7 O
    43. end
      8 l% x# g9 r$ ]+ |( D
    44. for i=1:Ly
      4 D; W6 p5 q: E5 L) s8 D
    45. text(xcenter-0.05*xrank,y(i),num2str(y(i))); %y标注
      9 }3 i\" `; @! F! O; W
    46. end/ G& Y. A; z5 K
    47. hold off;
      1 O9 f% ]+ ^& L7 w6 b$ x9 y
    复制代码
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-24 07:58 , Processed in 1.296439 second(s), 55 queries .

    回顶部