QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5109|回复: 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 编辑
    ; c- ?& h- s* J: }0 d
    7 i2 d+ O4 y) n. s+ b* q  U今天忽然想到如何用matlab画十字坐标,不过句柄方面确实用的不熟,便从网上找到一段程序,经测试可用,如果使用时不想有边框,可再加上axis off和box off两条语句,程序源出处是http://www.ilovematlab.cn/viewth...p;extra=&page=9
    1. function plot_to_center(x,y,Xticks,Yticks)
      2 o\" c$ G1 D* X/ }% O
    2. if nargin~=2 & nargin~=4 %输入不满足要求则报错0 v$ I\" s3 t' c$ c; M
    3. error('??? 输入参数个数不对');
      8 w6 ~) a+ t' l6 K
    4. return;
      \" G+ N* o& J2 _2 _8 j8 D5 k. J
    5. end
      ' Y( t6 K; W3 B* o) P
    6. figure;
      $ k9 v. U3 `\" e* \) N
    7. plot(x,y)& @( {5 T8 V1 e! L\" F7 y
    8. set(gca,'xticklabel',[])%不显示x标注, t( y$ W0 u, e& L! ]: {, d8 y
    9. set(gca,'yticklabel',[])%不显示y标注
      ' Q. ~) o& }5 {# ]
    10. c=get(gca,'color'); %获取axes背景色% u. h; Z, m$ \) {
    11. % set(gca,'xcolor',c,'ycolor',c) %设置标注杠颜色! k% [: P+ t# m/ V; k& p$ X% D
    12. grid on %加上网格' c3 e7 {/ G$ X
    13. if nargin==4# O& |1 v# i/ f& \. {\" [
    14. set(gca,'Xtick',Xticks); %设置Xtick
      \" H, {9 ~2 I0 R1 F2 A
    15. set(gca,'Ytick',Yticks); %设置Xtick4 s1 {! N  h* n6 d. F' B- D
    16. xlim([Xticks(1),Xticks(end)]); %设置x范围
      0 I) z! ~% L& u9 \# v  ]4 w; `
    17. ylim([Yticks(1),Yticks(end)]); %设置y范围
      ) {0 k) N\" h+ O6 z2 H  \3 R. N
    18. end% ^( E% x0 M- n7 Q2 Q/ q
    19. x=get(gca,'XTick'); %获取Xtick
      / Z/ S' w8 w8 h2 w) A8 R
    20. y=get(gca,'YTick'); %获取Ytick
      5 L# Z3 l) l0 |# b  U
    21. xL=xlim; %获取X范围
      ( M+ c) i  C) Q1 h\" x. S
    22. yL=ylim; %获取Y范围7 n! F( \- x  C' @) X
    23. xcenter=mean(xL); %X中心
      2 Z% e8 z( ^) {, B
    24. ycenter=mean(yL); %Y中心3 C; T( Z6 |4 G3 n5 p
    25. xrank=xL(2)-xL(1); %x跨度3 y\" P) q! A! U+ D0 M
    26. yrank=yL(2)-yL(1); %y跨度
      7 J9 w0 G. ]& T8 [: |\" |
    27. hold on;+ A! y- T& s  a2 s8 z0 A* i1 Y
    28. plot(x,ycenter*ones(size(x)),'k',xcenter*ones(size(y)),y,'k') %画坐标轴2 A\" M: f5 C& M1 v\" J6 C
    29. ax=[max(x),max(x)-0.02*xrank,max(x)-0.02*xrank;...* L, Y; @+ v* R6 n
    30. ycenter,ycenter+0.01*yrank,ycenter-0.01*yrank]; \" k0 o; v( M7 w: B
    31. fill(ax(1,:),ax(2,:),'k'); %画x箭头
      2 ]) U& {3 p% Y# c# [\" [
    32. ay=[xcenter,xcenter+0.0065*xrank,xcenter-0.0065*xrank;...1 d\" V1 W/ X; A# z
    33. max(y),max(y)-0.03*yrank,max(y)-0.03*yrank];: [+ [$ y. t; m9 X2 H2 Y
    34. fill(ay(1,:),ay(2,:),'k'); %画y箭头2 R2 e6 q/ O0 C7 x- G9 F; R% }
    35. Lx=length(x); %x的长度
      ; V7 s, x/ P- m  G; Z+ i
    36. plot(repmat(x(1,2:end-1)',1,11)',repmat(ycenter:0.002*yrank:...! R3 M4 T: x% k: S! E3 N* k; u
    37. ycenter+0.02*yrank,Lx-2,1)','k') %画x标注杠+ o- K, _6 @- B  k( X
    38. Ly=length(y);3 v1 W  [6 u5 O8 ^9 f
    39. plot(repmat(xcenter:0.002*xrank:xcenter+0.02*xrank,Ly-2,1)',...! I6 G7 i5 v& }/ r( i# p
    40. repmat(y(1,2:end-1)',1,11)','k') %画y标注杠
      3 J8 W8 {  Q4 {1 ^% h( Y
    41. for i=1:Lx9 `- A  F/ O\" S  ]
    42. text(x(i),(ycenter-0.03*yrank),num2str(x(i))); %x标注# B7 j: `\" t* T5 n
    43. end! u- \/ u- q: k& Z. S2 p$ ^
    44. for i=1:Ly) M& m- y8 |5 q4 M; j
    45. text(xcenter-0.05*xrank,y(i),num2str(y(i))); %y标注2 b4 c8 |3 }1 O+ k
    46. end
      ' G5 ~5 n( {. \5 @2 `
    47. hold off;, H2 v) |( d' Q8 [3 V& B
    复制代码
    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-7-11 08:18 , Processed in 0.459061 second(s), 54 queries .

    回顶部