matlab绘制横向柱状图

该博客通过柱状图展示了用户对于信息推送的不同态度:21.43%的用户表示不感兴趣,30.95%认为没必要,57.14%的用户认为会在首页刷到,而7.14%选择其他原因。文章探讨了这些数据背后的原因及影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

clear;
clc;
c = ['不感兴趣','觉得没必要','反正首页会刷到','其他'];
x = [1,2,3,4];
y = [21.43,30.95,57.14,7.14];
b=barh(x,y); %使用横向的坐标

set(gca,'YTickLabel',{'不感兴趣','觉得没必要','反正首页会刷到','其他'});
set(gca,'xticklabel',{'0%','10%','20%','30%','40%','50%','60%'});

%显示每个柱子上标注
 xtips=b(1).XEndPoints;
 ytips=b(1).YEndPoints;
 label=string(b(1).YData)+'%';
 text(ytips,xtips,label,'HorizontalAlignment','left')

### Matlab绘制柱状图的方法 在Matlab中,`bar()` 函数是最常用的用于绘制柱状图的工具之一。它能够创建二维柱状图、三维柱状图以及水平柱状图等多种形式的图表。 #### 基本语法 以下是 `bar()` 的基本调用方法: ```matlab bar(y) ``` 其中 `y` 是一个向量或者矩阵。如果输入是一个向量,则会生成一组垂直条形;如果是矩阵,则每一列代表一组条形[^1]。 #### 示例代码:简单柱状图 下面是一段简单的示例代码,演示如何使用 `bar()` 创建基础柱状图。 ```matlab data = [5, 10, 15, 20]; labels = categorical({'A', 'B', 'C', 'D'}); bar(labels, data); xlabel('类别'); ylabel('数量'); title('简单柱状图'); set(gca,'FontSize',12); % 设置字体大小 ``` #### 多维数据处理 当需要表示多个维度的数据时,可以传递矩阵给 `bar()` 函数。例如: ```matlab groupData = [10, 20, 30; 40, 50, 60]; bar(groupData); legend('Group A', 'Group B'); xlabel('分类'); ylabel('值'); title('分组柱状图'); ``` 这里展示了两组不同的数据在同一张图表上的对比情况[^3]。 #### 自定义样式 除了默认外观外,还可以通过参数调整颜色、宽度等属性。比如设置填充色为蓝色并去除边框线如下所示: ```matlab figure; data=[0.3,0.5,0.6,0.8,0.2,0.1,0.8,0.9,0.3,0.4]; Xlabel=categorical({'0','1','2','3','4','5','6','7','8','9'}); bar(Xlabel,data,0.7,'FaceColor',[0.12 0.57 1],'EdgeColor','none'); % 配置坐标轴文字风格 set(gca,'FontSize',20,'Fontname','Times New Roman'); ylabel('分布','Fontname','宋体','FontSize',20,'FontWeight','bold'); xlabel('类别','Fontname','宋体','FontSize',20,'FontWeight','bold'); % 数据标注功能实现 for i = 1:length(data) text(Xlabel(i), data(i)+0.01,num2str(data(i)),'HorizontalAlignment','center',... 'VerticalAlignment','bottom','FontSize',16,'Fontname','Times New Roman'); end ``` 此脚本不仅设置了特定的颜色方案还增加了顶部数值标记以便更直观理解数据含义[^4]。 #### 更高级别的定制化选项 对于更加复杂的场景可能涉及到堆叠效果或是横向布局等问题也可以轻松解决。例如制作堆积型柱状图可采用 `'stacked'` 参数完成操作: ```matlab clc; clear all; X = [70,75,80,85,90]; colors = [200,65,68;200,132,174;249,199,179;100,190,190;10,250,139]/255; hold on for idx = 1 : length(X) b = bar(idx,X(idx),0.9,'stacked'); set(b(1),'facecolor',colors(idx,:)); end box on ; xticks([1 2 3 4 5]); xticklabels({'Item-A','Item-B','Item-C','Item-D','Item-E'}); fontsize=10; fontfamily='Times New Roman'; set(gca,'FontSize',fontsize,'FontName',fontfamily); ylim([60 100]); ylabel('百分比 (%)','FontName','SimSun','FontSize',14); xlabel('项目名称','FontName','SimSun','FontSize',14); legend({'Item-A','Item-B','Item-C','Item-D','Item-E'},'Location','NorthEastOutside'); ``` 上述程序片段实现了带有个性化色彩配置及标签说明等功能强大的堆叠式直方统计图形输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值