matlab绘制横向柱状图

在这里插入图片描述

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`函数并结合图形对象属性设置。下面提供了一个具体的例子说明如何实现这一目标。 #### 创建数据集 首先定义两组用于比较的数据向量A和B: ```matlab % 定义两个类别下的数值 data1 = [50, 80; 60, 90]; % 假设有两类样本点,在两种条件下测得的结果分别为(50,60),(80,90) labels = {'Category A', 'Category B'}; ``` #### 绘制基本条形图 接着调用`bar()`命令生成初始的垂直方向上的直方图,并保存返回的手柄以便后续修改颜色和其他样式特性: ```matlab figure; bh = bar(data1); hold on; set(gca,'XTickLabel', labels); legend('Condition X','Condition Y'); title('Bidirectional Bar Chart Example'); xlabel('Categories'); ylabel('Values'); colormap([0.25 0.5 0.75 ; 0.75 0.25 0.5]); for i=1:length(bh) set(bh(i), 'FaceColor', get(gcf,'Colormap')(i,:)); end ``` #### 添加水平条形图 通过调整视窗视角以及重新定位坐标轴位置参数,可以在同一张图表上叠加一组横向排列的柱体表示另一维度的信息对比情况: ```matlab ax1 = gca; ax2 = axes('Position', ax1.Position,... 'XAxisLocation', 'top',... 'YDir', 'reverse',... 'YTick', [],... 'Color', 'none'); view([-90 90]); % 改变观察角度使得新加入的部分呈现为横置状态 hold(ax2, 'on') bh2 = barh(fliplr(data1)); % 使用fliplr翻转矩阵顺序从而匹配之前竖立着的那一侧标签次序 set(findobj(ax2,'Type','patch'),'EdgeColor','k') % 设置边框线黑色显示更清晰些 linkaxes([ax1 ax2], 'y') % 同步关联两条不同朝向的刻度尺使之同步变化方便查看对应关系 ``` 以上就是完整的MATLAB脚本,它能够有效地展示双重视角下多维数据分析结果,帮助更好地理解复杂模式中的差异性和相似性[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值