Hello Mathworks community,
I'm using the following loop to plot a graph for different scenarios:
figure
X = [1.182, 1.6, 1.7, 1.8, 1.9, 2]
NumberOfScenarios = [1, 2, 3]
Scenarios = string(NumberOfScenarios);
meanofscenarios = [0.8753 0.8685 0.8617 0.9099 0.9062 0.902 0.9044 0.9010 0.8975 0.9067 0.9030 0.8993 0.9141 0.9108 0.9076 0.9178 0.9147 0.9117]
for p = 1:numel(NumeroBESS)
plot(X, meanofscenarios(p : numel(NumberOfScenarios) : end), 'linewidth', 2); hold on
set(gca,'linewidth',2)
title('Title','FontName', 'Cambria', 'FontSize', 13); xlabel('Ratios DC/AC', 'FontName', 'Cambria', 'FontSize', 13); ylabel('Porcentaje de almacenamiento efectivo', 'FontName', 'Cambria', 'FontSize', 13)
legend('Scenario %d ', Scenarios(p)); hold on
end
I'm getting the graph I desire but I'd like the legend to display: Scenario 1, Scenario 2 and Scenario 3, but I'm not getting the expected output. I'm attaching an image of the plot I'm getting.
Could someone please give me a hand?
Than you
Santos

 採用された回答

Mathieu NOE
Mathieu NOE 2021 年 3 月 30 日

1 投票

hello
try this :
X = [1.182, 1.6, 1.7, 1.8, 1.9, 2]
NumberOfScenarios = [1, 2, 3]
Scenarios = string(NumberOfScenarios);
meanofscenarios = [0.8753 0.8685 0.8617 0.9099 0.9062 0.902 0.9044 0.9010 0.8975 0.9067 0.9030 0.8993 0.9141 0.9108 0.9076 0.9178 0.9147 0.9117]
figure(1),hold on
for p = 1:numel(NumeroBESS)
plot(X, meanofscenarios(p : numel(NumberOfScenarios) : end), 'linewidth', 2);
set(gca,'linewidth',2)
title('Title','FontName', 'Cambria', 'FontSize', 13);
xlabel('Ratios DC/AC', 'FontName', 'Cambria', 'FontSize', 13);
ylabel('Porcentaje de almacenamiento efectivo', 'FontName', 'Cambria', 'FontSize', 13)
legend_str{p} = (['Scenario ' num2str(Scenarios(p))]);
end
legend(legend_str);
hold off

4 件のコメント

Santos García Rosado
Santos García Rosado 2021 年 3 月 30 日
Thank's Mathieu! Now is working fine. I was wondering if perhaps you knew a way of doing it avoiding data convertion to cell?
I'm intending to use this in Simulink and I know that it doesn't like changing the format of data.
Thank's again!
Mathieu NOE
Mathieu NOE 2021 年 3 月 30 日
hmm , does string array better fit your needs ?
X = [1.182, 1.6, 1.7, 1.8, 1.9, 2]
NumberOfScenarios = [1, 2, 3]
Scenarios = string(NumberOfScenarios);
meanofscenarios = [0.8753 0.8685 0.8617 0.9099 0.9062 0.902 0.9044 0.9010 0.8975 0.9067 0.9030 0.8993 0.9141 0.9108 0.9076 0.9178 0.9147 0.9117]
figure(1),hold on
for p = 1:numel(NumeroBESS)
plot(X, meanofscenarios(p : numel(NumberOfScenarios) : end), 'linewidth', 2);
set(gca,'linewidth',2)
title('Title','FontName', 'Cambria', 'FontSize', 13);
xlabel('Ratios DC/AC', 'FontName', 'Cambria', 'FontSize', 13);
ylabel('Porcentaje de almacenamiento efectivo', 'FontName', 'Cambria', 'FontSize', 13)
legend_str(p,:) = strcat('Scenario : ' , Scenarios(p));
end
legend(legend_str);
hold off
Santos García Rosado
Santos García Rosado 2021 年 3 月 30 日
Thank's Mathieu! This works better in my case. Thank's for the help!
Mathieu NOE
Mathieu NOE 2021 年 3 月 30 日
you're welcome !

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

製品

リリース

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by