修改这段代码,让绘制数据的散点曲线颜色不一样: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; 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 yyaxis right; plot(x, y_right, '-o', 'Color', rand(1,3)); ylabel('Right Y-axis'); legend(legends); xlabel(text(1, 1));
时间: 2024-03-11 11:50:26 浏览: 57
好的,我修改过后的代码如下,每个数据点的颜色都是随机生成的:
```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;
scatter(x, ndata(:, 2), [], rand(nrows,3), 'filled');
hold on
for i=2:ncols-1
scatter(x, ndata(:, i+1), [], rand(nrows,3), 'filled');
end
scatter(x, y_right, [], rand(nrows,3), 'filled');
ylabel('Y-axis');
legend(legends, 'Location', 'best');
xlabel('X-axis');
```
修改的部分是在绘制散点图时,使用了`rand(nrows,3)`来生成一个随机的RGB颜色值矩阵,并将其作为参数传递给scatter函数的第四个参数,保证每个数据点的颜色都不一样。同时,使用了一个for循环来绘制除第一列外的所有散点图。
阅读全文