QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5083|回复: 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 编辑
      m( V, z5 ~- i
    4 W7 F* @) D$ t6 h0 d3 j今天忽然想到如何用matlab画十字坐标,不过句柄方面确实用的不熟,便从网上找到一段程序,经测试可用,如果使用时不想有边框,可再加上axis off和box off两条语句,程序源出处是http://www.ilovematlab.cn/viewth...p;extra=&page=9
    1. function plot_to_center(x,y,Xticks,Yticks)
      4 S5 C1 v% x( I
    2. if nargin~=2 & nargin~=4 %输入不满足要求则报错
      7 C1 ~' z# e- h: @- X
    3. error('??? 输入参数个数不对');8 g$ n  y7 q8 t9 a  y* s1 D\" i
    4. return;
      5 A3 {# D3 l6 T/ }7 C5 |# B
    5. end* i6 u/ D3 a! Y4 r
    6. figure;
      0 d\" f. t. ^\" \. Q\" H# c! q
    7. plot(x,y)
      ( y; P* b) {* S% ^7 e
    8. set(gca,'xticklabel',[])%不显示x标注
      - Q* a2 y1 c2 ?. q8 \# h9 l
    9. set(gca,'yticklabel',[])%不显示y标注
      8 \- q/ n1 e4 W8 W5 y- ]
    10. c=get(gca,'color'); %获取axes背景色! |; M: k1 \0 ]
    11. % set(gca,'xcolor',c,'ycolor',c) %设置标注杠颜色
      # t% b) Q: e8 F6 k
    12. grid on %加上网格
      5 s0 K\" h) N2 S$ f3 X% g/ Q* h
    13. if nargin==4
      4 j2 m7 g$ |% k4 K  E. K$ g4 l3 [
    14. set(gca,'Xtick',Xticks); %设置Xtick
      ! F\" U0 s; i. u: l: K9 }$ f6 [
    15. set(gca,'Ytick',Yticks); %设置Xtick- v3 W$ E7 L$ a+ J4 O
    16. xlim([Xticks(1),Xticks(end)]); %设置x范围
      4 B\" t& u/ ^4 z6 W\" a
    17. ylim([Yticks(1),Yticks(end)]); %设置y范围
      1 t+ @( Q& E2 G; \2 m9 ^
    18. end- j$ T3 I9 n- R- d, }3 U2 l! ^: U
    19. x=get(gca,'XTick'); %获取Xtick
      3 d! Y2 o9 F! K8 L
    20. y=get(gca,'YTick'); %获取Ytick) D5 G- @9 d% ]
    21. xL=xlim; %获取X范围* a. X9 t8 y2 }% j. x4 E5 Y, |# w
    22. yL=ylim; %获取Y范围
      / E4 Y0 G& c& X
    23. xcenter=mean(xL); %X中心* |; @. a: k2 X5 K\" O5 v& C9 Z- N, W
    24. ycenter=mean(yL); %Y中心8 G8 O! ]; k+ u4 H) W
    25. xrank=xL(2)-xL(1); %x跨度* j' d6 C0 L7 H
    26. yrank=yL(2)-yL(1); %y跨度3 P0 M$ Y& Y( _5 p: [
    27. hold on;. k* ^' f; Q6 W
    28. plot(x,ycenter*ones(size(x)),'k',xcenter*ones(size(y)),y,'k') %画坐标轴
      1 M5 h$ p8 _& {$ }. X4 a  ?4 n
    29. ax=[max(x),max(x)-0.02*xrank,max(x)-0.02*xrank;...
      ( u' S& {; |4 Y) y6 w
    30. ycenter,ycenter+0.01*yrank,ycenter-0.01*yrank]; 6 d3 P& m\" I% l\" ^! M+ k% J
    31. fill(ax(1,:),ax(2,:),'k'); %画x箭头
      2 n1 ~* W9 R9 I2 H3 Z* }! |
    32. ay=[xcenter,xcenter+0.0065*xrank,xcenter-0.0065*xrank;...5 K1 T$ h' T0 W, M6 n$ n4 F; g& g
    33. max(y),max(y)-0.03*yrank,max(y)-0.03*yrank];
      * c! C% D3 I6 o( D; d
    34. fill(ay(1,:),ay(2,:),'k'); %画y箭头
      ! t  f5 |: t' Y1 d
    35. Lx=length(x); %x的长度! P* ^) O5 R; ~/ U- v' @5 H3 W
    36. plot(repmat(x(1,2:end-1)',1,11)',repmat(ycenter:0.002*yrank:...
      * w0 H! B. ~\" e/ J) V0 `
    37. ycenter+0.02*yrank,Lx-2,1)','k') %画x标注杠# d1 [: e2 C- g: H6 U3 T( X* V# Z
    38. Ly=length(y);
        ^6 ?& A5 n3 p: P: A4 ]
    39. plot(repmat(xcenter:0.002*xrank:xcenter+0.02*xrank,Ly-2,1)',...
      0 f0 ~% R& c2 l- z- o# X
    40. repmat(y(1,2:end-1)',1,11)','k') %画y标注杠
      ' r% i, P7 R$ V# E; u
    41. for i=1:Lx
      $ d+ _% C: Q! |
    42. text(x(i),(ycenter-0.03*yrank),num2str(x(i))); %x标注
        W9 q. a2 u9 ~1 L& l% k
    43. end$ O7 [7 z4 t( m
    44. for i=1:Ly4 z+ v$ t% P8 f, ^
    45. text(xcenter-0.05*xrank,y(i),num2str(y(i))); %y标注
      % M$ n- D0 S8 k9 k
    46. end2 _6 K2 U\" e  i0 ^0 F4 A3 k
    47. hold off;
      0 {\" S1 ]! b, I% {\" b6 x+ z5 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-5-26 03:12 , Processed in 0.664723 second(s), 54 queries .

    回顶部