修改这段代码,为每条曲线先设置一个颜色映射,然后在绘制曲线时指定使用该颜色映射:function plot_excel_data2(filename) % filename: Excel 文件名 % 读取 Excel 文件 [ndata, text, alldata] = xlsread(filename); % 获取数据的行数和列数 [nrows, ncols] = size(ndata); % 取得第一列数据作为 x 轴 x = ndata(:, 1); % 取得第一行数据文本作为图例 legends = text(1, 2:end); % 取得除第一列外的数据作为右侧的 y 轴 y_right = ndata(:, 2:end); % 绘制图像 figure; % 首先绘制左侧y轴图像 yyaxis left; plot(x, ndata(:, 2), '-o', 'Color', rand(1,3)); ylabel(text(1, 2)); for i=2:ncols-1 hold on plot(x, ndata(:, i+1), '-o', 'Color', rand(1,3)); end % 然后绘制右侧y轴图像,需要特别再次指定数据! %yyaxis right; %plot(x, y_right, '-o', 'Color', rand(1,3)); %ylabel('Right Y-axis'); legend(legends); xlabel(text(1, 1));
时间: 2024-03-11 22:51:32 浏览: 73
下面是修改后的代码,为每条曲线先设置一个颜色映射,然后在绘制曲线时指定使用该颜色映射:
```matlab
function plot_excel_data2(filename)
% filename: Excel 文件名
% 读取 Excel 文件
[ndata, text, alldata] = xlsread(filename);
% 获取数据的行数和列数
[nrows, ncols] = size(ndata);
% 取得第一列数据作为 x 轴
x = ndata(:, 1);
% 取得第一行数据文本作为图例
legends = text(1, 2:end);
% 取得除第一列外的数据作为右侧的 y 轴
y_right = ndata(:, 2:end);
% 绘制图像
figure;
% 首先绘制左侧 y 轴图像
cmap = colormap(lines(ncols-1));
yyaxis left;
plot(x, ndata(:, 2), '-o', 'Color', cmap(1, :));
ylabel(text(1, 2));
for i=2:ncols-1
hold on
plot(x, ndata(:, i+1), '-o', 'Color', cmap(i, :));
end
% 然后绘制右侧 y 轴图像,需要特别再次指定数据!
yyaxis right;
plot(x, y_right, '-o', 'Color', rand(1,3));
ylabel('Right Y-axis');
legend(legends);
xlabel(text(1, 1));
end
```
上述代码中,首先使用 `lines(ncols-1)` 函数生成一个包含 `ncols-1` 种颜色的颜色映射,然后在 `plot` 函数中使用 `Color` 参数指定曲线的颜色。由于每条曲线都有自己的颜色映射,所以每次绘图时曲线的颜色都不同。
阅读全文