如何为多数据文件的同一变量设置不同绘图标记与线型?
解决Matlab绘图自定义标记与线型的问题
修改后的完整代码
ax = gca; grid on; hold on; % 配置线型和标记的循环顺序 ax.LineStyleOrder = {'-o', '-+', '-*', '-x', '-s', '-d', '-v', '->'}; % 自定义颜色顺序 ax.ColorOrder = [1 0 0; 1 0 1; 0 1 0; 0.4660 0.6740 0.1880; 0 0 1; 0.3010 0.7450 0.9330; 0.8500 0.3250 0.0980; 0.9290 0.6940 0.1250]; % 设置自动循环使用样式 ax.NextPlot = 'add'; % 循环绘制8组Excel数据(替换为你实际的读取逻辑) for i = 1:8 % 示例:读取当前文件的输入输出功率数据 % Pin_dBm = readmatrix(your_file_list(i)); % Pout_Meas_dbm = ...; plot(Pin_dBm, Pout_Meas_dbm, "LineWidth", 2); end ylabel('输出功率 [dBm]','Color','K') xlabel('输入功率 [dBm]') title('输出功率对比 - 开启模式 (0V)', 'Color', 'k') legend('3F50Sa1','3F100Sa1', '5F50Sa1','5F100Sa1','7F50Sa1','7F100Sa1','9F50Sa1','9F100Sa1','location', 'bestoutside') hold off;
关键修改说明
- 启用样式循环:取消原代码中
ax.LineStyleOrder的注释,定义8组与数据系列数匹配的线型+标记组合。 - 自动分配样式:添加
ax.NextPlot = 'add',让Matlab每次调用plot时,自动按顺序从LineStyleOrder和ColorOrder中取对应样式,无需手动指定。 - 分系列绘图:原代码仅调用一次
plot,需改为每个Excel文件对应一次plot调用(或直接使用多列矩阵绘图),确保每个数据系列单独分配样式。如果你的Pout_Meas_dbm是8列矩阵,直接调用plot(Pin_dBm, Pout_Meas_dbm, "LineWidth",2)即可,Matlab会自动按列分系列应用样式。
内容的提问来源于stack exchange,提问作者ARAZ
相关产品推荐
相关产品推荐

