概述
文章目录
- 1. 二维竖直直方图 bar
- 1.1 单组数据比较
- 1.2 多组数据比较
1. 二维竖直直方图 bar
1.1 单组数据比较
# version 1: 默认绘图
y = [0.4, 0.3, 0.6, 0.8];
bar(y);
假设现在有四个数据 0.4, 0.3, 0.6, 0.8
需要比较,直接将它们设置为 y
值,然后通过 bar(y)
绘制柱状图,默认是介个样子,比较丑:
@ 改变数值设置
现在需要规整一下我们的 x 轴标签设置,并且将 y 坐标的最大值放在 1 上,因为 0.8 顶格很丑…
x 轴标签默认其实是 x = 1:n
,n
为提供给 y
的数据个数,所以上面的例子默认显示出来就是 1 到 4 了。
(1)如果想要改成其他数字,只需要设置 m:n
,x 轴的标签就会显示为 m, m+1, m+2 ..., n
,只需要注意 x 轴标签个数和 y 数值个数一致即可。
(2)如果需要 x 轴标签带 “跨度”,只需要设置一个步长即可,比如 1:2:7
,就是从 1 到 7 步长为 2 的标签,显示在上例中就是 1, 3, 5, 7
。
(3)这里我们想要将 x 轴标签设置为具体的名称,需要用到 XTickLabel
,在花括号内填入自己想要的名称即可,具体见下例。
(4)对于 y 轴标签范围的设置,使用 ylim
就能设置到自己想要的范围啦。
# version 2:改变数值设置
y = [0.4, 0.3, 0.6, 0.8];
bar(y);
# y轴标签范围
ylim([0.2 1]);
# x轴标签设置
set(gca, 'XTickLabel',{'baseline','method-1','method-2','ours'});
@ 改变外观
(默认颜色不知道为什么就是有一股陈年的气息… )
这里使用 bar
方法中的参数 FaceColor
控制条柱颜色,另外设置了条柱宽度:
# version 2:改变外观
y = [0.4, 0.3, 0.6, 0.8];
# 外观
width = 0.5;
bar(y, width,'FaceColor',[176,224,230]/255);
# 标签设置
ylim([0.2 1]);
set(gca, 'XTickLabel',{'baseline','method-1','method-2','ours'});
这里注意 bar
要放在其他属性设置之前,否则会无效。可以自己实际尝试一下。
其他可以改变的外观属性还有很多,条柱的线型、线宽、线的颜色等等,做个小例子:
# 其他尝试
y = [0.4, 0.3, 0.6, 0.8];
width = 0.5;
bar(y, width, ...
'FaceColor',[176,224,230]/255, ...
'EdgeColor',[40,71,92]/255, ...
'LineWidth',2, ...
'LineStyle','--');
bar(x,y,width)
中的width
设置条柱的宽度,默认是0.8
,所以默认会显得比较胖,通过设置为0.5
让它们间隔大一些,同理如果设置为1
那所有条柱就是紧挨着的了,如果设置宽度大于 1,那么条柱会发生重叠;FaceColor
设置条柱的 填充色,强调一下它和 边缘色 没有关系;EdgeColor
设置条柱的 边缘色,默认是黑色的;LineWidth
设置条柱的 边缘线宽;LineStyle
设置条柱的 边缘线型,可选参数有'-' | '--' | ':' | '-.' | 'none'
;
@ 添加图表说明
# version 3:添加图表说明
y = [0.4, 0.3, 0.6, 0.8];
# 外观
width = 0.5;
bar(y, width,'FaceColor',[176,224,230]/255);
# 标签
ylim([0.2 1]);
set(gca, 'XTickLabel',{'baseline','method-1','method-2','ours'});
# 说明
xlabel('Methods');
ylabel('Score');
title('Compare');
@ 其他特殊设置
1. 指定基线、绘制网格
y = [0.4, 0.3, 0.6, 0.8];
width = 0.5;
bar(y, width, ...
'FaceColor',[176,224,230]/255, ...
'BaseValue',0.5);
ylim([0.2 1]);
set(gca, 'XTickLabel',{'baseline','method-1','method-2','ours'});
xlabel('Methods');
ylabel('Score');
title('Compare');
grid on;
BaseValue
指定了基线grid on
绘制网格
2. 使用堆叠柱状图
使用了堆叠柱状图,设置条柱的颜色,去掉柱状图黑色边框、添加图例。
data = [a1,b1,c1; a2,b2,c2];
# line 2
h = bar(data, 'stack');
set(h,'edgecolor','none');
set(h(1),'facecolor',[253,245,230]/255);
set(h(2),'facecolor',[245,222,179]/255);
set(h(3),'facecolor',[210,180,140]/255);
# line 8
ht = legend('good', 'moderate', 'failure');
set(ht, 'edgecolor', [0.8,0.8,0.8]);
- line 2:使用堆叠柱状图
- line 3:设
h
为柱状图变量,通过edgecolor
去掉条柱的边缘颜色 - line 8:设
ht
为图例变量,通过edgecolor
设置图例的边框颜色,[1,1,1] 为白色,[0,0,0] 为黑色,这里设置 [0.8,0.8,0.8] 为浅灰色
1.2 多组数据比较
# version 1: 默认绘图
y=[5 4 3 2 9; 4 8 7 2 7; 1 9 5 7 3];
bar(y)
通过将 y
设置为 m x n
的矩阵,可以用于比较 m
个不同方法的 n
组数据。
这里有 三个方法,比较 五个指标,注意到每个方法的对应指标颜色都是相同的。
最后
以上就是眯眯眼芹菜为你收集整理的论文常用图表一:柱状图【MATLAB】1. 二维竖直直方图 bar的全部内容,希望文章能够帮你解决论文常用图表一:柱状图【MATLAB】1. 二维竖直直方图 bar所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复