How to color individual points on errorbar plot?

54 次查看(过去 30 天)
Hi,
I want to color the individual points of this errorbar plot. I tried doing it in the following way but it doesn't work.
means=[1 1 2 3 4];
standarddeviation=[0.1 0.2 0.2 0.3 0.35];
color=['b' 'm' 'b' 'm' 'b'];
errorbar(means, standarddeviation,'.','MarkerEdgeColor', color,'MarkerSize',20),;
I also tried plotting it in a for loop but that doesn't work at all.
means=[1 1 2 3 4];
standarddeviation=[0.1 0.2 0.2 0.3 0.35];
color=['m','m','k','g','r'];
for i = 1:numel(means)
errorbar(means(i), standarddeviation(i),'.'),'MarkerEdgeColor', color(i),;
hold on
end
Can someone help me fix this?

采纳的回答

Star Strider
Star Strider 2020-7-3
You need to plot with respect to an independent variable.
Try this:
means=[1 1 2 3 4];
standarddeviation=[0.1 0.2 0.2 0.3 0.35];
color=['m','m','k','g','r'];
figure
hold on
for i = 1:numel(means)
errorbar(i, means(i), standarddeviation(i),'.','MarkerEdgeColor', color(i))
end
hold off
xlim([0 6])
I chose the loop index ‘i’ for the independent variable here.
.
  3 个评论
Nehal Trivedi
Nehal Trivedi 2022-9-27
移动:Star Strider 2022-9-28
I have generated this plot in Origin Pro. I wanted to generate in similar way.
Star Strider
Star Strider 2022-9-28
移动:Star Strider 2022-9-28
The only way I can think of to do that is to plot the line first and then the errorbars (although it is possible to do that in reverse, depending on wwhat you want) —
x = 0:10:90;
y = linspace(1, 9, 10);
err = ones(size(x));
figure
plot(x, y, '-sb', 'MarkerFaceColor','b', 'MarkerEdgeColor','b')
hold on
errorbar(x, y, err, '.r', 'MarkerSize',1);
hold off
grid
axis([-10 100 -1 11])
In order to plot the errorbars without the connecting line, plot them using a marker. Here I chose a red dot, with the dot vanishingly small.
.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Errorbars 的更多信息

产品


版本

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by