Set MarkerFaceColor to plot with multiple items.

I wanna fill with color the figure 'o' of my plot, but I know how. My plot is this way:
plot(X1,Y1,LineSpec1,...,Xn,Yn,Linespecn)
And I tried with this:
plot(X1,Y1,'om','MarkerFaceColor','k',...,Xn,Yn,LineSpecn)
But it didn't work.

 Accepted Answer

n = 10;
x1 =(1:n)';
y1 = rand(10, 1);
x2 = (1:n);
y2 = rand(10,1);
% Use separate plot when you need to specify additional properties
plot(x1, y1, 'om-', 'MarkerFaceColor','k');
hold on
plot(x2, y2, 'ob:', 'MarkerFaceColor','r');

5 Comments

If I want to use the automatic color sequencing that plot provides, I cannot use an explicit color for MarkerFaceColor. How do I get the face to fill with the automatically cycled color?
Assign the line color (in defaut color order) to MarkerFaceColor
n = 10;
x1 =(1:n)';
y1 = rand(10, 1);
x2 = (1:n);
y2 = rand(10,1);
% Use separate plot when you need to specify additional properties
p = plot(x1, y1, 'o-');
p.MarkerFaceColor = p.Color;
hold on
p1= plot(x2, y2, 'o:');
p1.MarkerFaceColor = p1.Color;
sorry this does not work for y data in a matrix because all curves are plotted with a single command. Is there no simple way to have filled markers (such as in scatter plot)?
Consider the example:
x =(0:10)';
y = rand(11,3); % multiple series in one matrix
p = plot(x, y, 'o-');
[p.MarkerFaceColor] = deal(p.Color);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!