Figure marker colors change slightly on export

7 views (last 30 days)
MDShhhh
MDShhhh on 5 Apr 2015
Edited: John Kelly on 19 May 2016
I'm creating a figure with marker colors defined using custom rgb identifiers in the 0 to 1 format (e.g. [.1 0 .6]). Upon save with the print() or saveas() functions, the colors are slightly altered.
I assume this is because upon export, MatLab defaults to some standard 256 color palette and changes the colors to closest fit. How can I circumvent this and keep the exact colors I've defined?
Thank you
(Using MatLab2015a)

Answers (2)

Mahdiyar
Mahdiyar on 5 Apr 2015
Edited: John Kelly on 19 May 2016
Somtimes, since the computer has not the font that you are using in the matlab, it may cause such a problem like this.
If you need to save the figure exactly the same as you see on the figure, it would be better to use some kind of tools like Snniping in windows to take the photo from the screen with high resolution. Of course, if you do not have many figures.
Regards,
  1 Comment
Jan
Jan on 5 Apr 2015
The problem of the OP does not concern the fonts or the resolution, but only the colors.

Sign in to comment.


Jan
Jan on 5 Apr 2015
Matlab does not use a 256 color palette. RGB values remain exactly as they are defined, except if you modify them explicitly, e.g. when you export the contents of the figure to a 256-color PNG. So please post the code you are using for the export and explain how you detect the changes. Perhaps only the tool, which opens the images afterwards modify the colors.
  1 Comment
MDShhhh
MDShhhh on 5 Apr 2015
I visually detect the changes in Apple's standard image viewer, Preview. If I take a screenshot of the figure produced in MatLab's viewer, load that in Preview, and place it directly next to the printed figure file loaded by Preview, they are visibly different. See attached file:
Below is the code:
figure;
hold on
scatter(x1, y1, [], [.1 0 .6], 'filled')
scatter(x2, y2, [], [1 .3 .1], 'filled')
scatter(x3, y3, [], [.6 .3 1], 'filled')
set(gcf,'PaperType', 'uslegal');
set(gcf,'PaperOrientation','landscape');
set(gcf,'PaperUnits','normalized');
set(gcf,'PaperPosition', [0 0 1 1]);
print(gcf, '-dpdf', 'Figures\Test.pdf');

Sign in to comment.

Categories

Find more on Printing and Saving in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by