Mathematica中文论坛-非官方

标题: 豆粑粑, matlab bar tight  [打印本页]

作者: meatball1982    时间: 2017-8-28 21:00
标题: 豆粑粑, matlab bar tight 
通过设置每个bar的宽度和位置使得bar相互不重叠,又挨在一起。
至于如何调,我暂没时间研究的很深,应该是默认宽度和[0 1](也就是每个值对应的不同的一组bar)之间的关系。
如果是5组数。应该下面的子图和参数基本够用。



太粗糙,只是够用。


  1. clear all
  2. clc


  3. colormap(jet)
  4. n=8;




  5. sbp_width=0.9;
  6. sbp_heig=0.85;
  7. n_row = 2;
  8. n_col = 2;
  9. [out_pos]=fun_mm_subplot_pos(n_row,n_col,sbp_width,sbp_heig);
  10. h=figure(1)
  11. set(h, 'Position', [100, 100, 1200, 600]);
  12.   

  13. a= rand(n,2);
  14. ax=axes('position',out_pos(1,:));
  15. h=bar(a,'barwidth',1.72)
  16. set(h(1),'XData',[1:n]-0.62 + 0.5)
  17. set(h(2),'XData',[1:n]-0.4 + 0.5)
  18. grid on
  19. axis([0 n+1 0 1])


  20. a= rand(n,3);
  21. ax=axes('position',out_pos(2,:));
  22. h=bar(a,'barwidth',1.5)
  23. set(h(1),'XData',[1:n]-0.61 + 0.5)
  24. set(h(2),'XData',[1:n]-0.50 + 0.5)
  25. set(h(3),'XData',[1:n]-0.39 + 0.5)
  26. grid on
  27. axis([0 n+1 0 1])

  28. a= rand(n,4);
  29. ax=axes('position',out_pos(3,:));
  30. h=bar(a,'barwidth',1.35)
  31. set(h(1),'XData',[1:n]-0.61 + 0.5)
  32. set(h(2),'XData',[1:n]-0.54 + 0.5)
  33. set(h(3),'XData',[1:n]-0.47 + 0.5)
  34. set(h(4),'XData',[1:n]-0.4  + 0.5)
  35. grid on
  36. axis([0 n+1 0 1])


  37. a= rand(n,5);
  38. ax=axes('position',out_pos(4,:));
  39. h=bar(a,'barwidth',1.261)
  40. set(h(1),'XData',[1:n]-0.594 + 0.5 )
  41. set(h(2),'XData',[1:n]-0.547 + 0.5 )
  42. set(h(3),'XData',[1:n]-0.504 + 0.5)
  43. set(h(4),'XData',[1:n]-0.457 + 0.5)
  44. set(h(5),'XData',[1:n]-0.41  + 0.5)
  45. grid on
  46. axis([0 n+1 0 1])

  47. h = gcf;
  48. fi_na=['./fig_bar'];
  49. fun_work_li_035_myfig_out(h,fi_na,3);
复制代码







欢迎光临 Mathematica中文论坛-非官方 (http://ilovemathematica.com/) Powered by Discuz! X3.2