QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5082|回复: 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 编辑 " O) d/ ~* _% D$ P/ e

    4 n* M( i! \+ R: [1 d今天忽然想到如何用matlab画十字坐标,不过句柄方面确实用的不熟,便从网上找到一段程序,经测试可用,如果使用时不想有边框,可再加上axis off和box off两条语句,程序源出处是http://www.ilovematlab.cn/viewth...p;extra=&page=9
    1. function plot_to_center(x,y,Xticks,Yticks)+ d1 o7 p9 U\" F* d1 U
    2. if nargin~=2 & nargin~=4 %输入不满足要求则报错. K, ?- y) y8 u1 i, z
    3. error('??? 输入参数个数不对');
      1 h\" Y* ]$ G% y3 _  B; b1 }# l
    4. return;4 b( B8 T6 [; {) O- b- K$ V
    5. end1 W$ ~1 r0 M2 m7 }8 x2 K
    6. figure;
      3 _' O/ `$ c: q4 b
    7. plot(x,y)% P# r\" p7 e' p- q  Z
    8. set(gca,'xticklabel',[])%不显示x标注
      . P# |0 T2 I/ J) ]0 Z6 I% `, q
    9. set(gca,'yticklabel',[])%不显示y标注0 G$ D; Y# }\" q
    10. c=get(gca,'color'); %获取axes背景色' c9 S! c( p6 X* x
    11. % set(gca,'xcolor',c,'ycolor',c) %设置标注杠颜色
      8 R* B7 R( O- h1 G8 ^
    12. grid on %加上网格
      9 u* q% r4 m) o* Q
    13. if nargin==4. j$ j+ d. A$ l
    14. set(gca,'Xtick',Xticks); %设置Xtick8 k/ m! b5 A* O4 W) {$ D1 `
    15. set(gca,'Ytick',Yticks); %设置Xtick
      9 }\" T7 u6 A' y
    16. xlim([Xticks(1),Xticks(end)]); %设置x范围
      3 O: a. l' F' C+ T
    17. ylim([Yticks(1),Yticks(end)]); %设置y范围
      / }6 i; g5 c/ H! ?( _+ P
    18. end3 H! z4 [! `1 U3 B. t0 }% M
    19. x=get(gca,'XTick'); %获取Xtick( r) q; A% i8 B4 ^2 D, O$ @
    20. y=get(gca,'YTick'); %获取Ytick8 x; y3 R0 P6 f8 [6 W1 h0 P
    21. xL=xlim; %获取X范围
      1 I% |+ \6 w. M9 W\" C
    22. yL=ylim; %获取Y范围
      9 R: ^. \\" p! E1 u$ y
    23. xcenter=mean(xL); %X中心6 Q, y; k$ U0 w( b$ U5 l! `7 \
    24. ycenter=mean(yL); %Y中心
      & s/ O/ Z. z  S\" A* t4 ]0 }1 A& t5 H
    25. xrank=xL(2)-xL(1); %x跨度  v/ X% @( V9 D% \( b5 X! K
    26. yrank=yL(2)-yL(1); %y跨度  ~. ~% h2 y' q3 x/ \
    27. hold on;
      8 c5 s# r6 S, S/ j
    28. plot(x,ycenter*ones(size(x)),'k',xcenter*ones(size(y)),y,'k') %画坐标轴
      $ }/ S/ \4 \- H' V+ ?# Z! D1 Z& D
    29. ax=[max(x),max(x)-0.02*xrank,max(x)-0.02*xrank;...) J) M$ i\" y) r( ~- x4 Z, E9 g! e9 A
    30. ycenter,ycenter+0.01*yrank,ycenter-0.01*yrank]; 1 N7 L0 o5 O- n: U
    31. fill(ax(1,:),ax(2,:),'k'); %画x箭头! Y4 ]) f% `! C- Q$ M- T
    32. ay=[xcenter,xcenter+0.0065*xrank,xcenter-0.0065*xrank;...6 @: F: ^9 h) E; g+ l! w' p
    33. max(y),max(y)-0.03*yrank,max(y)-0.03*yrank];
      7 E3 n. C3 W: N, Q
    34. fill(ay(1,:),ay(2,:),'k'); %画y箭头
      3 u& [( y. m/ ?
    35. Lx=length(x); %x的长度' H7 A( `/ F' x& {( }& ]
    36. plot(repmat(x(1,2:end-1)',1,11)',repmat(ycenter:0.002*yrank:...
      \" E; y6 e3 K' `6 d! `
    37. ycenter+0.02*yrank,Lx-2,1)','k') %画x标注杠
      6 s' E5 V1 @- b! \0 o' _% N
    38. Ly=length(y);
      ' N: }( y6 J- h
    39. plot(repmat(xcenter:0.002*xrank:xcenter+0.02*xrank,Ly-2,1)',...
      . {/ m/ p3 Y7 b3 S
    40. repmat(y(1,2:end-1)',1,11)','k') %画y标注杠
      7 H6 R% M  u+ j) u, b\" j
    41. for i=1:Lx  }: r  Z6 R. i\" W
    42. text(x(i),(ycenter-0.03*yrank),num2str(x(i))); %x标注' \- Q4 f: w# ^$ P, @! w) M# V
    43. end
      4 m& J( H' m3 ^( R/ J9 x4 j1 b0 k
    44. for i=1:Ly5 s$ g, P# h4 k: E! L
    45. text(xcenter-0.05*xrank,y(i),num2str(y(i))); %y标注) L5 ^/ v. ~+ T1 R
    46. end
      9 A\" q0 J& V8 V+ F/ ^0 D5 u\" J8 R
    47. hold off;
      - ^7 e7 v( k' z3 L
    复制代码
    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-5-26 00:14 , Processed in 0.421521 second(s), 55 queries .

    回顶部