How could I get a smooth curve by "plot" function?

I find that when I draw a line using plot function, the line is not smooth enough and have jagged edge. I have tried enlarging the data density of points, and still nothing has been improved. So, what should I do to get a smooth curve? Is this just a preference setting problem? Any suggestion will be helpful, and thank you very much.

Respuestas (3)

Jan
Jan el 28 de Abr. de 2012

2 votos

To insert a picture in a paper I'd suggest the Painters renderer and an export to EPS. While the preview picture e.g. in the screen view of Word looks rough, the lines are smooth when printed to paper or to a PDF.
The suggested export_fig does exactly this also, but with a lot of extra features.
The OpenGL renderer can export pixel images only, while Painters exports vector graphics also.
Walter Roberson
Walter Roberson el 27 de Abr. de 2012
There is no preference setting: the smoothness of the curve depends upon the resolution of the data and upon the amount of zooming that one has done.
That said, you may wish to experiment with the three different renderers, and in particular with
set(gcf, 'renderer', 'opengl')

5 comentarios

Jianwei Guo
Jianwei Guo el 27 de Abr. de 2012
a=0:pi/10000:2*pi;
x=100*cos(a);
y=100*sin(a);
plot(x,y)
axis equal
xlim([-110,110])
ylim([-110,110])
I use the code above to test the renders,and save as several formats. But still the edge is jagged.
Is there other method?
Jakob Sørensen
Jakob Sørensen el 27 de Abr. de 2012
Is it because you need it for a paper, or why do you want it to be smoother than that?
Jianwei Guo
Jianwei Guo el 28 de Abr. de 2012
Yes, I will insert a pic into my paper. Actually, the "OpenGL" setting is useful, and also the "dpi" setting. When I set the figure with 600dpi, the exported pic seems good.
Still, one more question:when I print the dash line "-." under "OpenGL" and "600dpi", the dash line almost seems like a solid line. What should I do to make it seems normal as well as clear?
Walter Roberson
Walter Roberson el 28 de Abr. de 2012
You should experiment with using the File Exchange contribution "export_fig".
Walter Roberson
Walter Roberson el 28 de Abr. de 2012
Also, possibly the FEX contribution "plt" would be useful to you.

Iniciar sesión para comentar.

Richard
Richard el 27 de Abr. de 2012

0 votos

you could use the smoothLine function from the file exchange:

3 comentarios

Jianwei Guo
Jianwei Guo el 28 de Abr. de 2012
Thank you very much, Lestyn.
Jan
Jan el 28 de Abr. de 2012
The SmoothLine function modifies the values between the measurement points. In a scientific paper this can be an important error.
Berks
Berks el 25 de Dic. de 2014
There is nothing non-scientific about using SmoothLine. It only changes the interpolation between consecutive points from linear to non-linear - it is an interpolation either way. If you don't want to guess values between points, don't draw a line.

Iniciar sesión para comentar.

Categorías

Más información sobre Graphics Performance en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 27 de Abr. de 2012

Comentada:

el 25 de Dic. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by