如何在 MATLAB 中的条形图上叠加单个数据点?

How to overlay single data points on bar graph in MATLAB?

我正在尝试绘制一个包含 9 个数据点的条形图。我想绘制条形图,其中单个数据点覆盖在条形图上。这是生成条形图的代码。我想用平均值为 y 的单个数据点覆盖每个条形图。有关如何执行此操作的任何建议都会有所帮助。谢谢!

x_num = [1:4];
x = categorical({'High PU-High RU','High PU-Low RU', 'Low PU-High RU', 'Low PU-Low RU'});
y = [0.557954545, 0.671394799, 0.543181818, 0.660227273];
figure
bar(x,y,0.4)
title('Economic Performance')
xlabel('Conditions')

你可以 hold onplot 额外的点数

% Generate some data
x = 1:4;
y = rand(9,4);   % note: 4 columns, N rows
ymean = mean(y); % mean of each column for bar

figure();
hold on; % plot multiple things without clearing the axes
bar( x, ymean, 0.4 ); % bar of the means
plot( x, y, 'ok' );   % scatter of the data. 'o' for marker, 'k' for black
hold off

plot 样式有很多选项,使用 'o''x''.' 作为标记类型将使它成为散点图而不是直线这就是你想要的,除了你可以疯狂使用 sizing/color/linewidth 等,请参阅 documentation.