matlab使用教程(46)—绘制条形图

ops/2024/10/18 7:44:36/

1.条形图种类

        如果需要查看一段时间内的结果、对比不同数据集的结果,或展示单个元素对汇总量的贡献和影响,则条形图会很有用处。
        默认情况下,条形图会将一个向量或矩阵中的每个元素表现为一个条形,条形的高度与元素的值成比例。

1.1二维条形图

        bar 函数沿着 x 轴分布条形。同一行的矩阵元素分在同一组。例如,如果矩阵包含五行三列数据,则 bar 将沿着 x 轴显示五组条形,每一组中包括三个条形。第一组条形表示 Y 中第一行的元素。
Y = [5,2,18,7,39,8,65,5,54,3,2];
figure
bar(Y)

        要堆叠一行中的元素,请指定 bar 函数的 stacked 选项。
figure
bar(Y,'stacked')

1.2二维水平条形图

        barh 函数沿着 y 轴分布条形。同一行的矩阵元素分在同一组。
Y = [5,2,1
8,7,3
9,8,6
5,5,5
4,3,2];
figure
barh(Y)

1.3三维条形图

        bar3 函数将每个元素绘制为一个单独的三维块,沿着 y 轴分布每列元素。
Y = [5,2,1
8,7,3
9,8,6
5,5,5
4,3,2];
figure
bar3(Y)

        要堆叠一行中的元素,请指定 bar3 函数的 stacked 选项。
figure
bar3(Y,'stacked')

1.4三维水平条形图

        bar3h 函数将每个元素绘制为一个单独的三维块,沿着 z 轴分布每列元素。
Y = [5,2,1
8,7,3
9,8,6
5,5,5
4,3,2];
figure
bar3h(Y)

2.修改条形图的基准线

        此示例演示如何修改条形图基线的属性。 创建一个四列矩阵的条形图。bar 函数为矩阵的每一列创建一个条形序列。将这四个条形序列返回为 b
Y = [5, 4, 3, 5;3, 6, 3, 1;4, 3, 5, 4];
b = bar(Y);

图表中的所有条形序列具有相同的基线。通过设置任一条形序列的 BaseValue 属性将基线的值更改为2。使用圆点表示法设置属性。
b(1).BaseValue = 2;
        将基线更改为粗的红色点线。
b(1).BaseLine.LineStyle = ':';
b(1).BaseLine.Color = 'red';
b(1).BaseLine.LineWidth = 2;

3.叠加条形图

        此示例演示如何叠加两个条形图并指定条形的颜色和宽度。然后演示如何添加图例、显示网格线和指定刻度标签。
        创建一个条形图。将条形宽度设置为 0.5,使条形使用 50% 的可用空间。通过将 FaceColor 属性设置为一个 RGB 颜色值来指定条形的颜色。
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])

        在第一个条形图上绘制第二个条形图。使用 hold 函数保留第一个图形。将条形宽度设置为 .25,使条形使用 25% 的可用空间。为该条形颜色指定一个不同的 RGB 颜色值。
temp_low = [22 24 32 41 50];
w2 = .25;
hold on
bar(x,temp_low,w2,'FaceColor',[0 0.7 0.7])
hold off

添加网格线、y 轴标签,并在左上角添加图例。按照创建图表的顺序指定图例说明。
grid on
ylabel('Temperature (\circF)')
legend({'Average High','Average Low'},'Location','northwest')

        通过设置坐标区对象的 XTick XTickLabel 属性,指定 x 轴刻度标签。 XTick 属性用于指定沿 x 轴的刻度值位置。 XTickLabel 属性用于指定每个刻度值要使用的文本。使用 XTickLabelRotation 属性旋转标签。使用圆点表示法设置属性。
ax = gca;
ax.XTick = [1 2 3 4 5];
ax.XTickLabels = {'January','February','March','April','May'};
ax.XTickLabelRotation = 45;

4.带有误差条的条形图

        结合使用 bar errorbar 函数创建带有误差条的条形图。
x = 1:13;
data = [37.6 24.5 14.6 18.1 19.5 8.1 28.5 7.9 3.3 4.1 7.9 1.9 4.3]';
errhigh = [2.1 4.4 0.4 3.3 2.5 0.4 1.6 0.8 0.6 0.8 2.2 0.9 1.5];
errlow = [4.4 2.4 2.3 0.5 1.6 1.5 4.5 1.5 0.4 1.2 1.3 0.8 1.9];
bar(x,data)
hold on
er = errorbar(x,data,errlow,errhigh);
er.Color = [0 0 0];
er.LineStyle = 'none';
hold off

5.按高度为三维条形着色
        此示例演示如何根据条形高度为条形着色,以此方式来修改三维条形图。
        创建使用 magic 函数得到的数据的三维条形图。在数组 b 中返回用于创建条形图的曲面对象。向图形添加颜色栏。
Z = magic(5);
b = bar3(Z);
colorbar

        对每个曲面对象,从 ZData 属性取得 z 坐标数组。使用该数组设置 CData 属性,该属性用于定义顶点颜色。通过将曲面对象的 FaceColor 属性设置为 'interp' 来插入面颜色。使用圆点表示法查询和设置属性。
for k = 1:length(b)
zdata = b(k).ZData;
b(k).CData = zdata;
b(k).FaceColor = 'interp';
end


http://www.ppmy.cn/ops/6463.html

相关文章

MYSQL 二、SQL语句总结

一、navicat 操作快捷键 一般都用naviact来操作数据库,故总结一下相关的快捷键: CTRLL 历史日志 CTRLTAB 或 SHIFTCTRLTAB 下一个窗口或选项卡 CTRLQ …

uniapp之消除图片的空白占用空间

我们在使用uniapp开发的过程中一定会遇到一个情况就是我们加载的图片总有一点空白出现在不该出现的地方代码如下 <view style"background:#ff0000;"><image style"width:100%;"src"https://t7.baidu.com/it/u1819248061,230866778&fm19…

FreeLearning C/C++ 译文集翻译完成

C 高级编程C 高级编程秘籍Qt Creator 应用开发C 游戏编程入门指南C 编程入门指南Boost.Asio C 网络编程Boost C 应用开发秘籍第二版C 数据结构与算法设计原理C Qt5 GUI 编程C 高性能编程C 反应式编程C 系统编程秘籍C 研讨会C 现代嵌入式编程秘籍C 专家编程&#xff1a;成为熟练…

HackMyVM-Connection

目录 信息收集 arp nmap WEB web信息收集 dirsearch smbclient put shell 提权 系统信息收集 suid gdb提权 信息收集 arp ┌─[rootparrot]─[~/HackMyVM] └──╼ #arp-scan -l Interface: enp0s3, type: EN10MB, MAC: 08:00:27:16:3d:f8, IPv4: 192.168.9.115 S…

java解决常见递归问题

最基本的&#xff0c;斐波那契数列&#xff0c;阶乘&#xff08;0&#xff0c;1的阶乘均为1&#xff09; 返回字母“x”第一次出现的位置 使用递归编写一个函数&#xff0c;读取一个字符串&#xff0c;返回字母“x”第一次出现的位置。例如&#xff0c;字符串 "abcdefgh…

《springcloud alibaba》 六 微服务链路跟踪skywalking

目录 准备调整配置接入多个微服务网关项目调整order-seata项目stock-seata项目测试 接入网关微服务 skywalking持续化到mysql自定义链路跟踪pom .xmlorderControllerOrderServiceOrderDaoOrderTblMapper.xml测试 性能剖析日志tid打印pom.xmllogback-spring.xml日志收集启动项目…

计算机网络(王道考研)笔记个人整理——第一章

第一章 OSI/ISO参考模型 下层向上层服务&#xff0c;每一层次有特定的协议和功能&#xff0c;协议为功能服务&#xff0c;是打包和拆包的过程 物联网淑 慧试用 应用层&#xff1a;所有能和用户交互产生网络流量的程序 典型应用层服务&#xff1a;文件传输&#xff08;FTP&#…

小例子Flask网站开发—args(三)

在Flask当中args充当的角色与任务。 在 Flask 中&#xff0c;args 通常用于从 URL 查询参数中获取值。它主要用在路由函数中&#xff0c;通过 request.args.get() 方法来获取 URL 中的查询参数。以下是一些使用 args 的常见场景&#xff1a;1. 构建动态路由&#xff1a;通过在路…