Matlab 设置了线颜色的打印显示的颜色略有不同

Matlab 设置了线颜色的打印显示的颜色略有不同,matlab,plot,colors,Matlab,Plot,Colors,问题 我正在两个不同的绘图中绘制两个不同的数据集,我希望图形的颜色相同(蓝色)。显然,我认为通过设置标记和线条的颜色很容易做到这一点,但尽管我使用相同的RGB代码,但绘图显示为不同的蓝色 下面的插图显示了不同的外观,如果在Matlab中查看或导出为png、pdf或jpeg,则此问题是相同的。彩色印刷版也会显示不同的颜色。我知道这些颜色很相似,但如果仔细观察,它们就不一样了。为了确保,我确实以相同的大小、相同的属性、相同的一切导出它们 问题 我可能有一个简单的阴谋错误吗?还是有办法解决这个问题?我

问题

我正在两个不同的绘图中绘制两个不同的数据集,我希望图形的颜色相同(蓝色)。显然,我认为通过设置标记和线条的颜色很容易做到这一点,但尽管我使用相同的RGB代码,但绘图显示为不同的蓝色

下面的插图显示了不同的外观,如果在Matlab中查看或导出为png、pdf或jpeg,则此问题是相同的。彩色印刷版也会显示不同的颜色。我知道这些颜色很相似,但如果仔细观察,它们就不一样了。为了确保,我确实以相同的大小、相同的属性、相同的一切导出它们

问题

我可能有一个简单的阴谋错误吗?还是有办法解决这个问题?我找不到解决这个问题的办法。 非常感谢您的帮助

Plot1

Plot2

h=figure
hold on
yyaxis left
l1=plot(1:6,1:6);
l2=plot(1:6,2:7);
hYLabel=ylabel('Test'); 

yyaxis right
r1=plot(1:6,3:8);
hYLabel=ylabel('Test');
hXLabel = xlabel('Test');

a=sprintf('TestTest\n Test');
b=sprintf('Test Test\n Test');
c=sprintf('Test & Test\nTest Test');
hLegend=legend([l1,l2,r1,], a, b, c);
set([gca,hXLabel,hYLabel,hLegend] , 'FontName'   , 'Helvetica','FontSize', 8) 
set(hLegend,'Fontsize',8,'Location', 'southoutside', 'Orientation','horizontal')
set(gca,'LineWidth',1.0)
ax=gca;


set(l1, 'LineWidth',1.5,'LineStyle','-','Color',[0 0.447 0.7410])
set(l2, 'LineWidth',1.5,'LineStyle','-.','Color',[0 0.447 0.7410])
set(r1, 'LineWidth',1.5,'LineStyle','-')
hold off

情节3

代码1

y=[0.3700    0.3600    0.350    0.3398    0.325    0.30]
h=plot(1:6,y,'Marker','o','Color',[ 0 0.4470 0.7410], 'MarkerFaceColor', [ 0 0.4470 0.7410], 'LineWidth', 1.5)
hold on
ax=gca;
ax.YLabel=ylabel('Test'); 
ax.XLabel = xlabel('Year');
l=legend('Whatever the legend says')
set([gca,ax.XLabel,ax.YLabel], 'FontName', 'Helvetica','FontSize', 8) 
set(l,'Fontsize',8,'Location', 'southoutside', 'Orientation','horizontal')
set(gca,'LineWidth',1.0)
hold off**
代码2

h=figure
hold on
yyaxis left
l1=plot(1:6,1:6);
l2=plot(1:6,2:7);
hYLabel=ylabel('Test'); 

yyaxis right
r1=plot(1:6,3:8);
hYLabel=ylabel('Test');
hXLabel = xlabel('Test');

a=sprintf('TestTest\n Test');
b=sprintf('Test Test\n Test');
c=sprintf('Test & Test\nTest Test');
hLegend=legend([l1,l2,r1,], a, b, c);
set([gca,hXLabel,hYLabel,hLegend] , 'FontName'   , 'Helvetica','FontSize', 8) 
set(hLegend,'Fontsize',8,'Location', 'southoutside', 'Orientation','horizontal')
set(gca,'LineWidth',1.0)
ax=gca;


set(l1, 'LineWidth',1.5,'LineStyle','-','Color',[0 0.447 0.7410])
set(l2, 'LineWidth',1.5,'LineStyle','-.','Color',[0 0.447 0.7410])
set(r1, 'LineWidth',1.5,'LineStyle','-')
hold off

最新版本的MATLAB在显示和打印图形时使用抗锯齿(除非明确禁用),因此同一颜色的较细线条可能比同一颜色的较粗线条看起来更亮

可以选择禁用地物的抗锯齿

set(gcf, 'GraphicsSmoothing', 'off')
或者全球范围内的所有数字


当您使用像素颜色检查工具而不是依靠眼睛时,上面发布的所有图像都是相同的蓝色。

最新版本的MATLAB在显示和打印图形时使用抗锯齿(除非明确禁用),因此,同一颜色的较细线条可能比同一颜色的较粗线条更亮

可以选择禁用地物的抗锯齿

set(gcf, 'GraphicsSmoothing', 'off')
或者全球范围内的所有数字


当您使用像素颜色检查工具而不是依靠眼睛时,上面发布的所有图像都是相同的蓝色。

我不确定我是否理解这个问题。你在问为什么图2中的两条蓝线略有不同?还是要将Plot2中的所有线都设为蓝色?Plot1的蓝色和Plot2的蓝色至少在我的计算机上不同,在我的打印输出中也不同。我不知道该告诉您什么-Plot1和Plot2中的蓝色线在我的计算机上看起来相同。难道仅仅是线条粗细的不同使它们看起来像不同深浅的蓝色吗?你不是在问轴的颜色,是吗?MATLAB在直线上使用抗锯齿,所以它可能看起来稍微轻一点,但如果你在直线的中间采样,它们是完全相同的color@KiW还是一样的蓝色。最好用像素颜色检查工具检查颜色,而不是依靠你的眼睛。我不确定我是否理解这个问题。你在问为什么图2中的两条蓝线略有不同?还是要将Plot2中的所有线都设为蓝色?Plot1的蓝色和Plot2的蓝色至少在我的计算机上不同,在我的打印输出中也不同。我不知道该告诉您什么-Plot1和Plot2中的蓝色线在我的计算机上看起来相同。难道仅仅是线条粗细的不同使它们看起来像不同深浅的蓝色吗?你不是在问轴的颜色,是吗?MATLAB在直线上使用抗锯齿,所以它可能看起来稍微轻一点,但如果你在直线的中间采样,它们是完全相同的color@KiW还是一样的蓝色。最好使用像素颜色检查器工具检查颜色,而不是依靠眼睛。