我有一个Matlab脚本,它从文件中导入数据并创建指数拟合。我希望脚本使用相同的颜色绘制数据点和拟合。图例应为数据文件的名称。当我再次为另一个输入文件运行相同的脚本时,我希望新数据和拟合显示在添加到图例的新数据文件的相同绘图窗口名称中。
到目前为止,我所拥有的是这样的;
expfit = fit(x,y,'exp1')
figure(1)
hold all
plot(x,y,'*','DisplayName','fileName)
legend('Interpreter','none')
legend show
使用
plot(expfit,x,y,'DisplayName','fileName')
不起作用
如何使用与数据相同的颜色将拟合线添加到每个数据中将文件名添加到图例中?
你很接近。。。
一个简单的方法是在前面获取颜色
c = parula(7); % default colour map with 7 colours
figure(1); clf;
hold on
% filename is a variable e.g. filename = 'blah.csv'; from where the data was loaded
plot( x, y, '*', 'DisplayName', filename, 'color', c(1,:) );
plot( expfit, x, y, '-', 'HandleVisibility', 'off', 'color', c(1,:) );
legend('show');
请注意,通过关闭HandleVisibility
,配合将不会显示在图例中。这是个人偏好,我只喜欢数据和拟合的一个条目,您也可以在第二张图上使用DisplayName
。
使用color
输入,两个图都使用相同的颜色。我已经使用了彩色地图的第一行,如果你绘制了一些其他数据,你可以使用第二行等
另一种选择是让MATLAB自动确定颜色,只需复制第二张图的颜色,您需要创建第一张图的变量(p
(来获得颜色
p = plot( x, y, '*', 'DisplayName', filename );
plot( expfit, x, y, '-', 'HandleVisibility', 'off', 'color', p.Color );
其他代码将是相同的。