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

目录

一、柱状图/条形图基础

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

三、柱状图/条形图重叠

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

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

六、参考内容


一、柱状图/条形图基础

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

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

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

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

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

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

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

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

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

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


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

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

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

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
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可以在创建条形图对象后对其进行将来的修改。

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

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

例1:

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

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

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

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

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

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

三、柱状图/条形图重叠

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

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

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

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


clc
x2=[1 2 3 4];

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

六、参考内容

[1]MATLAB官方文档

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

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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值