How do I change the marker size for a plot?

4.823 visualizaciones (últimos 30 días)
john birt
john birt el 30 de Abr. de 2011
Comentada: Evan el 18 de En. de 2023
Im trying to set the marker size on a plot but having no luck, heres my code
this works fine
x , x^2,'-k*',...
x , x^3,'-ko',...
x , x^4,'-k' )
but when i try and set marker size it does not
x , x^2,'-k*',...
x , x^3,'-ko','MarkerSize',12,...
x , x^4,'-k' )
what do I need to do?

Respuesta aceptada

Oleg Komarov
Oleg Komarov el 30 de Abr. de 2011
Editada: MathWorks Support Team el 8 de Nov. de 2018
You can change the marker size for a line plot by setting the “MarkerSize” property, either as a name-value pair or by accessing the “Line” object.
Name-value pair:
If you set this property as a name-value pair with the “plot” function, you must set it after all the x,y pairs. Name-value pair settings apply to all the plotted lines. To use a different marker size for each line, use separate “plot” commands. For example:
plot(x,x^2,'-k*', 'MarkerSize',20)
hold on
plot(x,x^4,'-k' )
hold off
Accessing the “Line” object:
Alternatively, return the “Line” objects as an output argument from the “plot” function and then set the “MarkerSize” property for each object separately.
p = plot(x,x^2,'-k*', x,x^3,'-ko', x,x^4,'-k' )
p(1).MarkerSize = 20;
p(2).MarkerSize = 12;
  3 comentarios
Sreekar Sai Ranganathan
Sreekar Sai Ranganathan el 7 de Sept. de 2021
Is there a way to set this globally at startup for all plots?
For e.g., for line width of plots, I found that adding the following line in startup.m does it. Is there a similar property for the default marker size?
Sreekar Sai Ranganathan
Sreekar Sai Ranganathan el 7 de Sept. de 2021
Nvm, figured it out. The following works:
Also see this answer, if anyone needs something similar.

Iniciar sesión para comentar.

Más respuestas (3)

Jan el 30 de Abr. de 2011
plot(x, x^2,'-k*');
plot(x, x^3,'-ko','MarkerSize', 12);
plot(x, x^4,'-k');
  2 comentarios
Leo Simon
Leo Simon el 22 de Mayo de 2014
For some obscure reason, MarkerSize is not consistently used. When you use scatter, you need to set 'SizeData' instead of 'MarkerSize'. Also, the scale of SizeData is different from that of MarkerSize' E.g.,
h = scatter(rand,rand,'b','filled'); set(h,'SizeData',96);
Michelle Hirsch
Michelle Hirsch el 29 de En. de 2016
The difference is subtle, but intentional. It stems from the different use cases.
MarkerSize is used to control the overall size of markers, just like the overall width of a line with LineWidth or font size. The units are in points, just like LineWidth.
Scatter is used to actually scale the marker sizes based on data. Specifically, the area of the marker is proportional to the value. This is why the units are in points squared.

Iniciar sesión para comentar.

Matt Fig
Matt Fig el 30 de Abr. de 2011
To make this type of thing much easier, you could download this code so that all these options are available from a simple mouse click:
  3 comentarios
Michelle Hirsch
Michelle Hirsch el 29 de En. de 2016
You can also enable a context menu for changing line and marker properties just by enabling plot edit mode. Click on the button in the Figure toolbar with an arrow on it, then right click on your line.
Frank Pierce
Frank Pierce el 1 de Sept. de 2016

Iniciar sesión para comentar.

Hari Desanur
Hari Desanur el 15 de Nov. de 2016
The Marker Size property for a particular line can be set using line object handles. For example -
l = plot(x1,y1,'*-',x2,y2,'*-');
l(1).MarkerSize = 8; % set marker size of 8 for the first line (x1,y1)
l(2).MarkerSize = 12;
  1 comentario
P_L el 18 de Abr. de 2019
Hi there and what if you wanted to chnage the colours of 'ko' data points so that they are filled for example with 'b'
Many thanks

Iniciar sesión para comentar.


Más información sobre Formatting and Annotation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by