根據表格數據繪圖:橫坐標為字種數,縱坐標為百分比。
將 plot 改為 bar 即可繪製柱狀圖:
% 假設數據
categories = {'A','B','C','D','E'};
values = [12, 18, 25, 30, 15]; % 百分比
% 繪製垂直柱狀圖
bar(values);
set(gca, 'XTickLabel', categories);
xlabel('字種數');
ylabel('百分比 (%)');
title('字種數分布統計');
grid on;
% 分組柱狀圖(多組數據對比)
data = [12, 15; 18, 20; 25, 22; 30, 28; 15, 18]; % 5類 x 2組
bar(data, 'grouped'); % 或 'stacked'
legend('第1組', '第2組');
| 屬性 | 說明 | 示例 |
|---|---|---|
FaceColor | 柱體填充顏色 | bar(..., 'FaceColor', [0.2, 0.6, 0.8]) |
EdgeColor | 邊框顏色 | bar(..., 'EdgeColor', 'k') |
BarWidth | 柱寬 (0-1) | bar(..., 'BarWidth', 0.6) |
BaseValue | 基線位置 | bar(..., 'BaseValue', 10) |
barh(values); % 水平柱狀圖,適合類別標籤較長的情況
function plot_bar_chart(categories, values, title_str)
figure;
h = bar(values);
h.FaceColor = [0.2, 0.5, 0.8];
h.EdgeColor = 'none';
h.BarWidth = 0.7;
ax = gca;
ax.XTickLabel = categories;
ax.XTickLabelRotation = 45;
ax.YLabel.String = '百分比 (%)';
ax.Title.String = title_str;
grid on; grid minor;
ylim([0, max(values)*1.15]);
end