首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MATLAB 繪製分組柱狀圖:從 plot 改用 bar 函數實現

     編輯:程式設計綜合問答

需求

根據表格數據繪圖:橫坐標為字種數,縱坐標為百分比。

核心解決方案

將 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
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved