QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5057|回复: 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 编辑
    - F0 p9 Y( b: U. ^) z5 T. t# I! S2 ]$ r  r, l, M+ |
    今天忽然想到如何用matlab画十字坐标,不过句柄方面确实用的不熟,便从网上找到一段程序,经测试可用,如果使用时不想有边框,可再加上axis off和box off两条语句,程序源出处是http://www.ilovematlab.cn/viewth...p;extra=&page=9
    1. function plot_to_center(x,y,Xticks,Yticks)
      ( a' D1 j. X( R0 b  P$ e\" e
    2. if nargin~=2 & nargin~=4 %输入不满足要求则报错- N8 R: R* {/ Q7 y: V$ J
    3. error('??? 输入参数个数不对');
      ) z\" P- ]/ \0 n/ W0 j- u
    4. return;& w2 B' [1 m: L5 @) t8 e, L
    5. end. |  n& h* K/ ^
    6. figure;( h+ Q. X! s1 J3 i% H; D
    7. plot(x,y)) M# ~; V& U. ~$ }
    8. set(gca,'xticklabel',[])%不显示x标注8 b3 l, G0 v. P% P& g1 q* g9 r/ S
    9. set(gca,'yticklabel',[])%不显示y标注
      1 J1 Y  q0 n& O7 p\" C0 S
    10. c=get(gca,'color'); %获取axes背景色
      & Y/ W2 J3 l0 i2 F2 _) Y
    11. % set(gca,'xcolor',c,'ycolor',c) %设置标注杠颜色6 z: [$ j3 p: H
    12. grid on %加上网格
      & s% u% E: l+ b2 T$ x2 ^
    13. if nargin==4) p% d6 W6 O) a5 j8 E  [! S6 I
    14. set(gca,'Xtick',Xticks); %设置Xtick
      $ R2 d: P  o% G) a) ^/ B. v
    15. set(gca,'Ytick',Yticks); %设置Xtick- l/ ?! H/ C  t! Q' G( H
    16. xlim([Xticks(1),Xticks(end)]); %设置x范围3 O/ c: e& e& S\" ~
    17. ylim([Yticks(1),Yticks(end)]); %设置y范围- Z! y) c5 C0 _. ~
    18. end% X- M7 n$ f2 X4 D
    19. x=get(gca,'XTick'); %获取Xtick
      9 P8 r4 @9 f! b
    20. y=get(gca,'YTick'); %获取Ytick
        N- ]$ F8 b) K
    21. xL=xlim; %获取X范围! e. O! ]- t- ~/ G$ r
    22. yL=ylim; %获取Y范围
      ' u- G* u+ }  T7 i& X6 g  A\" f
    23. xcenter=mean(xL); %X中心
      2 c  u, }( P; u
    24. ycenter=mean(yL); %Y中心! J6 z0 Q. g5 _3 j6 b
    25. xrank=xL(2)-xL(1); %x跨度
      ' D8 _' j# ?\" ?- S2 X0 _$ X
    26. yrank=yL(2)-yL(1); %y跨度
      ! T9 X( _% K8 O7 Y7 w+ S* [
    27. hold on;' e7 V# W+ j& W/ g' ^
    28. plot(x,ycenter*ones(size(x)),'k',xcenter*ones(size(y)),y,'k') %画坐标轴
      9 a) `2 A) M# [! o
    29. ax=[max(x),max(x)-0.02*xrank,max(x)-0.02*xrank;...
      $ z0 r: l% t2 i( o
    30. ycenter,ycenter+0.01*yrank,ycenter-0.01*yrank]; \" F9 l& a) A8 [( d; W7 n2 O
    31. fill(ax(1,:),ax(2,:),'k'); %画x箭头
      , b' }- M* ?/ z( ?2 {. W
    32. ay=[xcenter,xcenter+0.0065*xrank,xcenter-0.0065*xrank;...0 ]. Q' D/ _0 [
    33. max(y),max(y)-0.03*yrank,max(y)-0.03*yrank];/ D+ `\" Q6 y5 S' s
    34. fill(ay(1,:),ay(2,:),'k'); %画y箭头
      # S5 P% k8 F\" Q: y3 a8 R\" t1 f
    35. Lx=length(x); %x的长度+ c' P1 N  b* i+ C% P
    36. plot(repmat(x(1,2:end-1)',1,11)',repmat(ycenter:0.002*yrank:...
      2 }. R' y! d5 p1 {( G, T( W: j  w
    37. ycenter+0.02*yrank,Lx-2,1)','k') %画x标注杠9 x1 j- T3 p+ @$ l
    38. Ly=length(y);
      # a\" {\" _. p; j8 o* j
    39. plot(repmat(xcenter:0.002*xrank:xcenter+0.02*xrank,Ly-2,1)',...6 }( `% Q1 N& h  Z' U2 Y
    40. repmat(y(1,2:end-1)',1,11)','k') %画y标注杠
      ) @# W, e5 n% Z/ y: v4 H8 t1 m, q
    41. for i=1:Lx. c0 }6 R( K6 g5 g: \4 L% R: E
    42. text(x(i),(ycenter-0.03*yrank),num2str(x(i))); %x标注
      : z3 d9 J: z* i* O/ E! J$ }
    43. end
      6 P8 E# @2 a# P: M. i
    44. for i=1:Ly7 t1 I+ C' r\" L' u8 O0 q
    45. text(xcenter-0.05*xrank,y(i),num2str(y(i))); %y标注
      - [9 t; c- @# D: F4 _% W
    46. end0 s7 x9 y) L# u6 ]: z& n\" o
    47. hold off;
      7 C' ?, @/ z8 r2 N8 y9 e6 M
    复制代码
    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 16:04 , Processed in 0.403758 second(s), 55 queries .

    回顶部