MATLAB Answers

Changing the points to pixels rendering ratio

2 views (last 30 days)
Alexander Hensley
Alexander Hensley on 3 Nov 2019
Answered: Subhadeep Koley on 5 Nov 2019
I am creating figures for a journal paper via MATLAB, and I copy these figures into Adobe Illustrator to do final tweaks. The real size of the figures for the journal are no more than 240 points by 240 points (1 pt being 1/72 of an inch). It's helpful to work in real units the whole time, so I set all my MATLAB figures to use units "points". However, this makes creating figures difficult as a plot of 120x120pts in size for example is incredibly small when rendered to the screen. I have included an example picture. Is there a way to change the scale of MATLAB's plot renderer so that say, 120pts corresponds to several hundred pixels? I would like to specify the length to pixel ratio.


Alexander Hensley
Alexander Hensley on 3 Nov 2019
I didn't expect pressing enter to just submit the question without any confirmation. Here's the example picture of what I'm dealing with working with figures of these dimensions. It would be easier to tweak my figure if this was rendered larger on the screen.
Image Analyst
Image Analyst on 3 Nov 2019
And why can't you resize it by just grabbing the corner or edge of the figure and dragging it bigger?
Alexander Hensley
Alexander Hensley on 3 Nov 2019
Fair question, while dragging does make the figure appear bigger, it does not scale everything uniformly. Minutia like relative marker size, line thickness, and data point spacing are all important to creating a clean, cohesive figure, but rescaling the figure by dragging disrupts all these properties. I have posted a picture as an example.

Sign in to comment.

Answers (1)

Subhadeep Koley
Subhadeep Koley on 5 Nov 2019
You can first tweak your figure in the default large rendering then only use the below code to resize and save your plot to any desired size, resolution, and format.
figure('Color','w'); surf(peaks);
% Set your preferred dimension
set(gcf, 'Units', 'points', 'Position', [0, 0, 240, 240]);
% Print in raster PNG format
print('test','-dpng','-r0'); % change the 3rd argument to change resolution '-r0' is the screen R % resolution
% Print in true vector EPS format
On the more, the function export_fig() can be very helpful to you for exporting your plot to any desired size, resolution, and format after tweaking.
Hope this helps!


Sign in to comment.

Sign in to answer this question.