What is the difference between a "histogram" and "mesh" when printing the figure to pdf

조회 수: 2 (최근 30일)
I've been trying to make plots of some data for a text I'm writing with TeX. I'm using this piece of code for changing and printing the plots:
set(0,'defaulttextinterpreter','latex');
set(0,'DefaultTextFontname', 'CMU Serif')
set(0,'DefaultAxesFontName', 'CMU Serif')
set(gcf,'PaperPositionMode','auto');
set(gcf,'PaperOrientation','landscape');
% I've tried this before, doesn't change the outcome
% set(gca,'FontName','CMU Sans Serif');
print('-dpdf','-bestfit','filename.pdf');
This works perfectly for some mesh plots im using:
mesh(data);
but for a histogram:
histogram(different_data,'EdgeColor','none','BinWidth',1,'Normalization','probability');
I get a nice figure:
but a bad pdf file:
Does anyone know a way I can fix this within matlab?

채택된 답변

Abhinav Gurram
Abhinav Gurram 2017년 5월 22일
There can be quite a few reasons to why the histogram doesn't print as well as the mesh, to a pdf. A couple of things you can look at would be:
  • Resolution - By default, the resolution for figures is 150 dpi. You can try adjusting the resolution to your liking and check to see if the two plots(histogram, mesh) still look different. However, keep in mind that using a higher resolution value can yield higher-quality output but at the cost of higher memory use and larger output files. Furthermore, the higher the resolution setting, the longer it takes to render your figure.
  • InvertHardCopy - This property changes the background color to white, changes white text objects and axes objects to black and changes black text objects and axes objects to white. This property is on by default, therefore, try turning this property off and see if makes any difference.
  • Renderer - Graphics renderer, specified as '-opengl' or '-painters'. This is by default set to
There are a lot of other properties you can configure for the 'print' command and as figure options, to enhance the quality of your image. You can find a list of these properties here:
  1. Print properties
  2. Figure properties
Hope this helps!
  댓글 수: 1
Christian Wittpahl
Christian Wittpahl 2017년 5월 26일
Setting the renderer to '-opengl' solved it, I guess it automatically uses opengl for the mesh plot. Thank you very much!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by