QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5193|回复: 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 编辑
    / G; a; W6 C! F- r
    ! j3 q6 u; l9 [1 F2 z3 y8 `今天忽然想到如何用matlab画十字坐标,不过句柄方面确实用的不熟,便从网上找到一段程序,经测试可用,如果使用时不想有边框,可再加上axis off和box off两条语句,程序源出处是http://www.ilovematlab.cn/viewth...p;extra=&page=9
    1. function plot_to_center(x,y,Xticks,Yticks)4 _7 ^; v2 p2 u
    2. if nargin~=2 & nargin~=4 %输入不满足要求则报错' [# X' ?& s\" ?2 r2 ]
    3. error('??? 输入参数个数不对');
      ; \9 s# z3 x. q7 m
    4. return;
      * G! Z, l4 B, J/ {: q7 t
    5. end+ o& i2 D, i  ~( \9 s$ _
    6. figure;! W3 M. T+ e% `# I# E
    7. plot(x,y)& f6 ~% R! G- p8 L5 F+ P# C
    8. set(gca,'xticklabel',[])%不显示x标注
      % A% F( u) Y% {  s' X2 p$ E& |
    9. set(gca,'yticklabel',[])%不显示y标注: ]/ Z/ y( o  c3 ?2 Z
    10. c=get(gca,'color'); %获取axes背景色& b; |$ O  n7 c) U) g$ ]1 a
    11. % set(gca,'xcolor',c,'ycolor',c) %设置标注杠颜色9 X) U4 x& j+ P: v
    12. grid on %加上网格
      - _6 k/ P2 J, }\" ~! A
    13. if nargin==4
      1 X. q4 R+ u8 W4 [
    14. set(gca,'Xtick',Xticks); %设置Xtick! V- A\" R6 T6 r
    15. set(gca,'Ytick',Yticks); %设置Xtick7 g! U7 B/ r7 k% G
    16. xlim([Xticks(1),Xticks(end)]); %设置x范围
      $ B, V0 e8 ]* `* T
    17. ylim([Yticks(1),Yticks(end)]); %设置y范围
      8 z& V4 h5 r1 i
    18. end. v2 L7 Z  r/ r( S\" w4 e$ y
    19. x=get(gca,'XTick'); %获取Xtick
      2 F/ y5 x1 [6 k) c3 L
    20. y=get(gca,'YTick'); %获取Ytick
      / Q4 H. @* K% I: B% g
    21. xL=xlim; %获取X范围
      : D! F  Q! }\" d
    22. yL=ylim; %获取Y范围
      9 t7 \$ ?1 U5 m
    23. xcenter=mean(xL); %X中心1 J! N  N; X% S\" G& N1 j# }) P
    24. ycenter=mean(yL); %Y中心
      ' @! U4 `* G5 K) G\" b
    25. xrank=xL(2)-xL(1); %x跨度
      2 G4 X8 o* V- D1 W
    26. yrank=yL(2)-yL(1); %y跨度6 T8 p# a# ?/ s; ^
    27. hold on;
      5 |) l! I' |+ @
    28. plot(x,ycenter*ones(size(x)),'k',xcenter*ones(size(y)),y,'k') %画坐标轴
      - D3 D' y- T% @) _
    29. ax=[max(x),max(x)-0.02*xrank,max(x)-0.02*xrank;...4 ]  v( I. D- P. U. r
    30. ycenter,ycenter+0.01*yrank,ycenter-0.01*yrank]; 1 i: p) h) R: F6 y8 {8 L  F\" N
    31. fill(ax(1,:),ax(2,:),'k'); %画x箭头( q4 s5 w' R2 I- T; E0 D6 U& u1 |7 V
    32. ay=[xcenter,xcenter+0.0065*xrank,xcenter-0.0065*xrank;...
      # Y3 l: j' U) U. a
    33. max(y),max(y)-0.03*yrank,max(y)-0.03*yrank];
      6 p$ A/ K4 i5 g+ n' D
    34. fill(ay(1,:),ay(2,:),'k'); %画y箭头- r2 O, r: j6 n# F9 |- P
    35. Lx=length(x); %x的长度5 ]! ~1 p- D. }
    36. plot(repmat(x(1,2:end-1)',1,11)',repmat(ycenter:0.002*yrank:...
      # D3 P8 ~. }5 l* e0 ^% a
    37. ycenter+0.02*yrank,Lx-2,1)','k') %画x标注杠# p0 H. b9 n  V6 v3 y
    38. Ly=length(y);
      4 _6 J# w# Z4 J: Y3 D6 M9 e
    39. plot(repmat(xcenter:0.002*xrank:xcenter+0.02*xrank,Ly-2,1)',...
      . l2 n8 R+ `; F0 `\" J* v\" ]  R! ?
    40. repmat(y(1,2:end-1)',1,11)','k') %画y标注杠) `6 A% F5 u& Y' f0 _
    41. for i=1:Lx) ]5 Q# [; ^& L( U1 ~
    42. text(x(i),(ycenter-0.03*yrank),num2str(x(i))); %x标注
      ) j# H7 H+ p\" A% j+ P/ J
    43. end7 ~7 r0 k. w6 z4 Z6 ]* b$ I: b
    44. for i=1:Ly
      6 q7 F1 p$ ?\" O
    45. text(xcenter-0.05*xrank,y(i),num2str(y(i))); %y标注3 R6 p* e* y7 ~! d2 x
    46. end2 `9 O: Y5 j2 }6 V8 T
    47. hold off;  T/ J1 Q# Z# ]8 ^' _: P: [# a
    复制代码
    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-23 10:13 , Processed in 1.206910 second(s), 54 queries .

    回顶部