• 科研笔记第三期——一条文章带你玩转柱状图


    目录

    一、柱状图/条形图基础

    二、具有分布拟合的直方图(histfit)

    三、柱状图/条形图重叠

    四、柱状图/条形图正负填充颜色不同

    五、柱状图/条形图添加数字

    六、参考内容


    一、柱状图/条形图基础

    例1:bar(y)为y中的每个元素创建一个条形图。如果y是矩阵,则bar根据y中的行对条形图进行分组。分别以纵向和横向为例:

    1. y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    2. bar(y);

    1. y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    2. barh(y);

    例2:bar(x,y)在x指定的位置绘制条形图。

    1. x = 1900:10:2000;
    2. y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    3. bar(x,y);

    例3:bar(___,width)设置柱状图相对宽度,用于控制组内柱状图的间距。将宽度指定为标量值。将此选项与前面语法中的任何输入参数组合一起使用。

    1. y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    2. bar(y,0.4)

    例4:bar(___,style)指定条形图组的样式。例如,使用“stacked”将每组显示为一个多色条。

    1. y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
    2. bar(y)

    1. y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
    2. bar(y,'stacked')


    例5:bar(___,color)设置所有条形图的颜色。例如,红色条使用“r”。

    1. y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    2. bar(y,'r')

    例6:bar(___,Name,Value)使用一个或多个名称-值对参数修改条形图。这些设置适用于打印的所有条形图。例如,使用“EdgeColor”、“lack”以黑色勾勒所有条形图。

    1. y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    2. bar(y,'FaceColor',[0 .5 .5],'EdgeColor',[0 .9 .9],'LineWidth',1.5)

    例7:bar(ax,___)绘制到由ax指定的轴中,而不是绘制到当前轴(gca)中。选项ax可以位于前面语法中的任何输入参数组合之前。

    例8:b=bar(___)返回一个或多个bar对象。如果y是一个向量,则bar将创建一个bar对象。如果y是矩阵,则bar为每列创建一个bar对象。使用b可以在创建条形图对象后对其进行将来的修改。

    1. y = [2 4 6; 3 4 5];
    2. b = bar(y);
    3. b(2).LineWidth = 2;
    4. b(2).EdgeColor = 'red';

    二、具有分布拟合的直方图(histfit)

    例1:

    histfit(data) 使用等于数据中元素数平方根的箱数绘制数据中值的直方图,并拟合正态密度函数。

    normrnd产生正态分布随机数的函数,例normrnd(0,1,1,6)产生1行六列均值为0,标准差为1的随机数。

    fitdist 获取拟合中使用的参数。

    1. r = normrnd(10,1,100,1);
    2. histfit(r);%可尝试histfit(r,6),观察结果
    3. pd = fitdist(r,'Normal')%获取拟合参数

    例2:betarnd 贝塔分布的随机数生成器

    1. b = betarnd(3,10,100,1);
    2. figure
    3. histfit(b,10,'beta')%‘’内代表拟合方式
    4. figure
    5. histfit(b,10,'kernel')
    6. figure
    7. h = histfit(r,10,'normal')%h(1)代表柱状图,h(2)代表线条
    8. h(1).FaceColor = [.8 .8 1];
    9. h(2).Color = [.2 .2 .2];

    三、柱状图/条形图重叠

    1. x = [1 2 3 4 5];
    2. temp_high = [37 39 46 56 67];
    3. w1 = 0.5;
    4. bar(x,temp_high,w1,'FaceColor',[0.2 0.2 0.5])
    5. temp_low = [22 24 32 41 50];
    6. w2 = .25;
    7. hold on
    8. bar(x,temp_low,w2,'FaceColor',[0 0.7 0.7])
    9. hold off
    10. grid on
    11. ylabel('Temperature (\circF)')
    12. legend({'Average High','Average Low'},'Location','northwest')
    13. ax = gca;
    14. ax.XTick = [1 2 3 4 5];
    15. ax.XTickLabels = {'January','February','March','April','May'};
    16. ax.XTickLabelRotation = 45;

    四、柱状图/条形图正负填充颜色不同

    1. data=[5 -5 6 2 -3 2 -8 6 -4 6 5 -3 -1 5 6;
    2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15];
    3. data=data';
    4. hold on
    5. for i = 1 : length(data)
    6. if data(i,1)> 0
    7. bar(data(i,2),data(i,1),0.5,'b') % 正数用蓝色
    8. else
    9. bar(data(i,2),data(i,1),0.5,'k') % 负数用黑色
    10. end
    11. end

    五、柱状图/条形图添加数字

    1. clc
    2. x2=[1 2 3 4];
    3. t1=[28 41 21 5];
    4. t2=[29 42 22 4];
    5. t3=[28 42 20 4];
    6. t=[t1;t2;t3];
    7. t=rot90(t,3)
    8. figure
    9. bar(x2,t)
    10. for i = 1:length(x2)
    11. text(x2(i)-0.3,t1(i),num2str(t1(i),'%g%%'),...
    12. 'HorizontalAlignment','center',...
    13. 'VerticalAlignment','bottom')
    14. text(x2(i),t2(i),num2str(t2(i),'%g%%'),...
    15. 'HorizontalAlignment','center',...
    16. 'VerticalAlignment','bottom')
    17. text(x2(i)+0.3,t3(i),num2str(t3(i),'%g%%'),...
    18. 'HorizontalAlignment','center',...
    19. 'VerticalAlignment','bottom')
    20. end
    21. title(' 换乘次数比例分布')
    22. xlabel('换乘次数')
    23. ylabel('分布比例/%')
    24. %legend('2014','2015','2016',3)
    25. legend({'\fontname{Times New Roman}2014','\fontname{Times New Roman}2015','\fontname{Times New Roman}2016'},'FontSize',11);
    26. axis([0 5 0.0 50]);
    27. set(gca,'xticklabel',{'1','2','3','4'});

    六、参考内容

    [1]MATLAB官方文档

    [2]matlab绘制柱状图并显示数值_matlab柱状图上怎么标数据_发如雪Jay的博客-CSDN博客

    [3]Matlab柱状图 不同颜色_matlab 柱状图颜色_毛发浓密的猿工的博客-CSDN博客


    本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

  • 相关阅读:
    洛谷 P7018 [CERC2013] Bus
    Oracle数据库之日期查询
    CDH/CDP 是什么?
    Linux服务器查看CPU相关信息
    Cloud微服务:Ribbon负载均衡
    Python数据分析与机器学习42-Python库分析科比生涯数据
    基于Qt4的电机变化数据处理工具开发
    盛世古董乱世金-数据库稳定到底好不好?
    Mybatis引入外部properties文件
    【论文阅读】Combinatorial Benders’ Cuts for the Strip Packing Problem
  • 原文地址:https://blog.csdn.net/weixin_53181946/article/details/132635887