How to plot high resolution?
Mostrar comentarios más antiguos
I would like to plot a histogram with 2048 bins. Is it possible plot and save it? pdf? retina display
Respuestas (2)
Akira Agata
el 23 de Oct. de 2017
How about adjusting a resolution by setting 'Position' property of figure. Here is an example.
% Sample data
mu = 0.0;
sigma = 1.0;
x = normrnd(mu,sigma,100000,1);
% Plot histogram with 2048 bins in full HD (1920x1080) resolution
figure('Position',[0 0 1920 1080])
histogram(x,'NumBins',2048)
2 comentarios
Mr M.
el 14 de Feb. de 2018
Akira Agata
el 22 de Feb. de 2018
OK. Then, how about saving your histogram as a high-resolution image?
mu = 0.0;
sigma = 1.0;
x = normrnd(mu,sigma,100000,1);
dpi = 150; % Resolution
sz = [0 0 2880 1800]; % Image size in pixels
% Plot histogram with 2048 bins
% and save as an .tiff image file
% with 2880x1800 pixel and 150 dpi
figure(...
'PaperUnits','inches',...
'PaperPosition', sz/dpi,...
'PaperPositionMode','manual',...
'Visible', 'off')
histogram(x,'NumBins',2048)
print('-r150','-dtiff','histogram.tiff');
Mr M.
el 14 de Feb. de 2018
0 votos
5 comentarios
Walter Roberson
el 14 de Feb. de 2018
Could you expand on how you are testing? I have a 2560 x 1440 mac display, and it is not obvious that it is losing information if I put up a plot with InnerPosition set to full screen. I think I might be seeing some aliasing though.
Mr M.
el 14 de Feb. de 2018
Walter Roberson
el 14 de Feb. de 2018
Walter Roberson
el 21 de Feb. de 2018
The reason that set(gcf,'unit','pixel','position',[0 0 1600 1200]) fills the screen is that for Retina displays, MATLAB arbitrarily declares that a "pixel" is to be 1/72 of an inch (which just happens to be the same as a "point") -- as described at https://www.mathworks.com/help/matlab/creating_guis/dpi-aware-behavior-in-matlab.html#buyrn8d
"Units Property
When you set the Units property of a graphics or UI object to 'pixels', the size of each pixel is now device-independent on Windows and Macintosh systems:
- On Windows systems, 1 pixel = 1/96 inch.
- On Macintosh systems, 1 pixel = 1/72 inch."
The full hardware resolution is still there and you can still put up images at the full hardware resolution: you just have to be careful about specifying sizes in units of Pixel. For example, you could:
set(gcf,'unit','norm','position',[0 0 1 1])
Categorías
Más información sobre Histograms en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!