温州整站推广咨询,如何自学广告设计,wordpress微信快速登录,邢台做wap网站找谁一、什么是柱状图与条图#xff1f; 柱状图和条图都是用来表示分类数据的常见图表形式#xff0c;它们的核心目的是通过矩形的长度来比较各类别的数值大小。条图其实就是“横着的柱状图”#xff0c;它们的本质是一样的#xff1a;用矩形的长度表示数值大小#xff0c;不同…一、什么是柱状图与条图 柱状图和条图都是用来表示分类数据的常见图表形式它们的核心目的是通过矩形的长度来比较各类别的数值大小。条图其实就是“横着的柱状图”它们的本质是一样的用矩形的长度表示数值大小不同的只是方向。 柱状图也叫纵向柱图是一种竖直排列的图表。每个类别对应一个竖直的矩形柱柱子的高度表示该类别的数值大小。柱状图常用于比较不同类别的数据或展示某一指标在不同时间点的变化。 条图也称为横向条图是一种横向排列的图表。每个类别对应一个水平的矩形条条的长度表示该类别的数值大小。条图在类别名称较长或类别较多时更易阅读适合显示排名或比较数据。
二、柱状图与条图区别
1. 柱状图竖向
1时间序列类数据 当x轴表示时间如年、季度、月份时用柱状图更符合人们的阅读习惯。 示例各月销售额、年度产量变化。
2类别较少时的对比 类别不多时竖直排列易于对比各项数值。
3用于强调趋势或变化 上升/下降趋势在竖向展示下更加直观。
2. 条图横向
1类别名称较长时 横向排列避免 x 轴标签重叠提升可读性。 示例高校名称、产品型号、书名等。
2类别数量较多时 条图在纵向空间上更容易容纳大量项目。
3强调排名或排序 条图适合按数值排序展示清晰呈现高低顺序。 示例公司营收排名、国家人口数量对比。 小结 情况推荐图表时间为主轴的数据柱状图类别名称较长或项目较多条图强调趋势变化柱状图强调大小排序或排名条图
三、不同类型柱状图和条图的适用场景及特点 不同类型柱状图和条图的适用场景及特点表格 图形类型适用场景特点只有一列数据的柱状图单一类别的数据展示简单直观适合展示单项数据对比多列数据的柱状图不同类别或时间段的数据对比比较多个数据集适合显示多项对比三类柱状图对比三类数据如销量、价格、满意度等一次性展示三类数据便于多维度对比 条形图类别较多或类别名称较长强调排名或排序横向展示便于展示较长标签或较多类别 四、MATLAB绘制相应柱状图和条图
1. 只有一列数据的柱状图绘制 当我们有一组分类数据例如“产品A”、“产品B”等以及对应的数值如销量、评分等就可以使用 MATLAB 中最基本的 bar() 函数来绘制柱状图。
下面是相关代码实现
% 读取 Excel 文件
data readtable(单列数据柱状图.xlsx, Sheet, Sheet1, VariableNamingRule, preserve);
categories data{:, 分类};
values data{:, 数值};
% 创建图形窗口
figure(Color, [1 1 1], Position, [300 300 600 400]);
% 颜色设置
barColor [1 0.6 0.2];
% 绘制美观柱状图
b bar(values, 0.5, FaceColor, barColor, EdgeColor, none);
b.FaceAlpha 0.85; % 增加透明度
% 设置坐标轴标签与字体
set(gca, XTick, 1:length(categories), XTickLabel, categories, ...FontSize, 13, FontName, 宋体, LineWidth, 1.2, ...YGrid, on, GridLineStyle, --, GridColor, [0.7 0.7 0.7]);
xlabel(分类, FontSize, 13, FontName, 宋体);
ylabel(数值, FontSize, 13, FontName, 宋体);
title(只有一列数据的柱状图, FontSize, 16, FontWeight, bold, FontName, 宋体);
% 添加顶部数值标签
for i 1:length(values)text(i, values(i) 0.3, num2str(values(i)), ...HorizontalAlignment, center, ...FontSize, 12, FontName, 宋体, ...Color, [0.2 0.2 0.2]);
end
% 设置 y 轴范围
ylim([0, max(values) 3]);
% 去除图框顶部和右侧边界线
box off;柱状图实现 2. 多列数据的柱状图绘制 当我们有多个分类项例如季度或地区并且每个分类下有多个子类别例如不同产品或指标可以使用 bar() 函数绘制分组柱状图。这类图形非常适合对比多个系列数据在不同分类下的表现。
下面是相关代码实现
% 读取数据并保留中文列名
data readtable(多列数据柱状图.xlsx, VariableNamingRule, preserve);
% 提取分类X轴与多列值Y数据
categories data{:, 季度};
values data{:, 2:end};
% 创建图形窗口
figure(Color, [1 1 1], Position, [300 300 700 420]);
% 绘制分组柱状图更宽、更通透
b bar(values, grouped);
set(gca, XTickLabel, categories, FontSize, 13, FontName, 宋体, ...YGrid, on, GridColor, [0.85 0.85 0.85]);
% 自定义颜色
colors [0.2 0.6 0.8; 1 0.6 0.2; 0.4 0.8 0.4]; % 蓝、橙、绿
for i 1:numel(b)b(i).FaceColor colors(i,:);b(i).EdgeColor none;b(i).FaceAlpha 0.85;
end
% 设置标题和标签
xlabel(季度, FontSize, 13, FontName, 宋体);
ylabel(销量, FontSize, 13, FontName, 宋体);
title(三种产品季度销量对比柱状图, FontSize, 16, FontWeight, bold, FontName, 宋体);
% 图例
legend(data.Properties.VariableNames(2:end), ...Location, northwest, FontName, 宋体);
% 添加柱状图上的数值标签
for i 1:numel(b)xtips b(i).XEndPoints;ytips b(i).YEndPoints;labels string(b(i).YData);text(xtips, ytips 2, labels, HorizontalAlignment, center, ...FontSize, 11, FontName, 宋体, Color, [0.2 0.2 0.2]);
end
% 调整 Y 轴范围让数值标签更紧凑
ylim([0, max(values(:)) 20]);
% 去除边框顶部和右侧线条
box off;
柱状图实现 3. 三类柱状图绘制 当我们需要对比三个不同维度或属性如销量、价格、满意度等的数据表现适合使用简单的柱状图进行展示。此类图形结构直观通常仅包含一组分类每个柱子表示一个独立的类别。使用 MATLAB 中的 bar() 函数即可轻松绘制三类柱状图。通过不同高度的柱体清晰地反映出各个指标之间的数值差异常用于展示调查结果、评估指标或单次观测数据。
下面是相关代码实现
% 读取数据并保留中文列名
data readtable(三类柱状图.xlsx, Sheet, Sheet1, VariableNamingRule, preserve);
categories data{:, 指标类别};
values data{:, 数值};
% 自定义颜色采用RGB模式
colors [ 102 194 165;252 141 98;141 160 203
] / 255;
% 绘图
figure(Color, [1 1 1], Position, [400 300 540 360]);
b bar(values, 0.5, EdgeColor, none);
% 每根柱子赋予不同颜色
for i 1:length(values)b.FaceColor flat; b.CData(i, :) colors(i, :);
end
b.FaceAlpha 0.9;
% 坐标轴设置
set(gca, XTick, 1:length(categories), ...XTickLabel, categories, ...FontSize, 12, FontName, 宋体, ...YGrid, on, GridLineStyle, --, ...GridColor, [0.85 0.85 0.85], LineWidth, 1.1);
xlabel(指标类别, FontSize, 12, FontName, 宋体);
ylabel(数值, FontSize, 12, FontName, 宋体);
title(三类指标柱状图, FontSize, 15, FontWeight, bold, FontName, 宋体);
% 添加标签
for i 1:length(values)text(i, values(i) values(i)*0.03, num2str(values(i)), ...HorizontalAlignment, center, FontSize, 11, ...FontName, 宋体, Color, [0.15 0.15 0.15]);
end
ylim([0, max(values)*1.15]);
box off;柱状图实现 4. 条形图绘制 当类别数量较多或者每个类别名称较长时使用条形图横向柱状图会更合适。条形图采用横向展示方式不仅便于显示较长的标签还能更清晰地呈现数据的排序与排名在数据分析和结果汇报中被广泛使用尤其适合用于“前十排名”、“满意度排行”、“分类对比”等场景。MATLAB 中使用 barh() 函数可以方便地绘制条形图。
下面是相关代码实现
% 读取数据并保留中文列名
data readtable(条形图数据.xlsx,Sheet, Sheet1, VariableNamingRule, preserve);
% 提取产品名称和得分
categories data{:, 产品};
values data{:, 得分};
% 排序
[values, sortIdx] sort(values, descend);
categories categories(sortIdx);
% 创建图形窗口
figure(Color, [1 1 1], Position, [400 300 700 400]);
% 三色方案橘红、草绿、芥末黄
colors [0.85, 0.33, 0.10; 0.47, 0.67, 0.19;0.93, 0.69, 0.13
];
% 根据数据数量重复颜色
num_colors length(values);
repeated_colors repmat(colors, ceil(num_colors / size(colors, 1)), 1);
% 绘制条形图
b barh(values, FaceColor, flat, EdgeColor, none, BarWidth, 0.6);
b.CData repeated_colors(1:num_colors, :);
% 坐标轴设置
set(gca, YTick, 1:length(categories), ...YTickLabel, categories, ...FontSize, 14, FontName, SimSun, ...XGrid, on, GridLineStyle, --, ...GridColor, [0.85 0.85 0.85], ...TickDir, out, ...LineWidth, 1);xlabel(得分, FontSize, 14, FontName, SimSun);
title(产品满意度排行榜, FontSize, 18, FontWeight, bold, FontName, SimSun);
% 添加数据标签
for i 1:length(values)text(values(i) max(values) * 0.02, i, num2str(values(i)), ...FontSize, 12, FontName, SimSun, ...VerticalAlignment, middle, Color, [0 0 0], FontWeight, bold);
end
% X轴范围
xlim([0, max(values) * 1.2]);
box off;条图实现 希望这些示例能为你今后的数据分析、教学展示或科研图表制作提供实用参考。如果你有任何问题或想法欢迎留言交流一起精进可视化表达的技巧