QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5055|回复: 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 编辑
    ! d2 P: f7 h9 |' N7 l9 }0 j& }0 h8 @0 y- L. u3 }1 Z% N) S- A
    今天忽然想到如何用matlab画十字坐标,不过句柄方面确实用的不熟,便从网上找到一段程序,经测试可用,如果使用时不想有边框,可再加上axis off和box off两条语句,程序源出处是http://www.ilovematlab.cn/viewth...p;extra=&page=9
    1. function plot_to_center(x,y,Xticks,Yticks)
      5 L0 j! z1 \7 t: ^; U) T
    2. if nargin~=2 & nargin~=4 %输入不满足要求则报错6 u  {\" M$ `4 r- H* `
    3. error('??? 输入参数个数不对');
      : W/ w3 e/ F7 o  E3 R: Y0 C( f! V: k
    4. return;0 S6 j& \9 ^\" r! B2 w+ a& q7 r* C
    5. end
      1 t6 {+ V. \/ c6 W7 O9 S
    6. figure;; n& h/ A; X* @8 }* M
    7. plot(x,y)2 f* o; o$ [* e: n! p
    8. set(gca,'xticklabel',[])%不显示x标注0 K$ k$ m) r8 ?7 m
    9. set(gca,'yticklabel',[])%不显示y标注/ x/ y( c' p' b8 N( P+ J' ]
    10. c=get(gca,'color'); %获取axes背景色3 n. \; q$ j2 M* \: F
    11. % set(gca,'xcolor',c,'ycolor',c) %设置标注杠颜色, v7 j, s5 Z( P, G8 C  e0 U
    12. grid on %加上网格
      $ |& ]. [9 E' x1 ^# O% _9 K
    13. if nargin==43 R- s8 j) I+ o# Y( D3 V( D7 g) P
    14. set(gca,'Xtick',Xticks); %设置Xtick3 t; q/ \$ w1 o& ]/ Q$ t
    15. set(gca,'Ytick',Yticks); %设置Xtick  N$ T2 e* G$ M$ t* @  P$ q
    16. xlim([Xticks(1),Xticks(end)]); %设置x范围3 D2 Y+ j  q% ^
    17. ylim([Yticks(1),Yticks(end)]); %设置y范围
      % a4 t9 F. J7 d( w\" S7 M$ h8 x
    18. end
      7 j- C4 w; v# ]
    19. x=get(gca,'XTick'); %获取Xtick0 n9 G$ {0 ~- d; {4 K\" v1 d
    20. y=get(gca,'YTick'); %获取Ytick9 ]+ O7 x. I% r( a, N
    21. xL=xlim; %获取X范围
      6 O& G# A8 g5 _% Z* d  M1 B
    22. yL=ylim; %获取Y范围% F0 K# B0 j( E4 S
    23. xcenter=mean(xL); %X中心1 O/ ?( c3 \% c' S& }2 R
    24. ycenter=mean(yL); %Y中心
      9 T( g3 s\" d, M& q3 S$ T
    25. xrank=xL(2)-xL(1); %x跨度
      3 U- J7 Y0 ]4 `
    26. yrank=yL(2)-yL(1); %y跨度
      - M+ j8 J8 g; ?5 A. \! T
    27. hold on;# T# [7 y6 i* k( V9 D! V\" s
    28. plot(x,ycenter*ones(size(x)),'k',xcenter*ones(size(y)),y,'k') %画坐标轴0 H- S# P  R0 w: T
    29. ax=[max(x),max(x)-0.02*xrank,max(x)-0.02*xrank;...
      \" H3 Y- |- ^1 j% [+ b
    30. ycenter,ycenter+0.01*yrank,ycenter-0.01*yrank]; ) @2 V# Q8 b# k1 P% \. W
    31. fill(ax(1,:),ax(2,:),'k'); %画x箭头
      , L  `- n1 G$ o6 p% Z
    32. ay=[xcenter,xcenter+0.0065*xrank,xcenter-0.0065*xrank;...
      0 a, |0 j5 u, y8 O\" G
    33. max(y),max(y)-0.03*yrank,max(y)-0.03*yrank];
      , s/ }  k2 v' r. l- `3 ^
    34. fill(ay(1,:),ay(2,:),'k'); %画y箭头, Z* W6 j# X& {# h1 l
    35. Lx=length(x); %x的长度
      . N5 C% \1 f1 J% r' m
    36. plot(repmat(x(1,2:end-1)',1,11)',repmat(ycenter:0.002*yrank:...
      0 F. i& B0 o( X\" o5 d$ Y8 y% ~8 M- }8 g
    37. ycenter+0.02*yrank,Lx-2,1)','k') %画x标注杠
      8 k- J% Q/ U7 N& m8 W8 m6 Z
    38. Ly=length(y);
      ; e( N$ \) z: S/ o2 ^
    39. plot(repmat(xcenter:0.002*xrank:xcenter+0.02*xrank,Ly-2,1)',...8 G3 }, M) U) K
    40. repmat(y(1,2:end-1)',1,11)','k') %画y标注杠. c$ H8 k9 O5 m8 {+ [. G* N( |
    41. for i=1:Lx: b, q5 f+ r# T0 ^  \# z
    42. text(x(i),(ycenter-0.03*yrank),num2str(x(i))); %x标注
      & i; |2 i1 K1 @
    43. end# c' H3 t' v$ W- }0 x# _% e
    44. for i=1:Ly% f\" B9 U) O% V+ L* {, D
    45. text(xcenter-0.05*xrank,y(i),num2str(y(i))); %y标注0 w0 c% T8 R- y2 w
    46. end( |* ^\" i9 @8 s\" U1 V) H9 h
    47. hold off;
      1 P. v) n\" [1 j; [, k% z  f/ @
    复制代码
    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-4-12 06:07 , Processed in 0.437095 second(s), 55 queries .

    回顶部