Change Line width and Line color in findchangepts function.

4 vues (au cours des 30 derniers jours)
Ron
Ron le 13 Nov 2024
Commenté : Voss le 19 Nov 2024
I have a dataset, attached, and I am using findchangepts function to partition the data in different number of regions. I wish to control the line widht and other properties of the graph like Line style and color but I am not able to do so. Can anyone please help me with this? Thanking you in advance. My data looks like this.
  1 commentaire
Ron
Ron le 13 Nov 2024
I did forget to add the code I am using. This is my code.
findchangepts(ACc(:,2),'Statistic','mean','MaxNumChanges',2); hold on

Connectez-vous pour commenter.

Réponse acceptée

Voss
Voss le 13 Nov 2024
Modifié(e) : Voss le 13 Nov 2024
As I interpret the question, you want to plot the data in different regions with different line properties. If that's the case, try something like this:
ACc = readmatrix('AC_1Hzcsv.csv');
idx = findchangepts(ACc(:,2),'Statistic','mean','MaxNumChanges',3)
idx = 3×1
191 194 1547
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
figure
ylim([0 1])
hold on
line_widths = [2, 3, 1, 2];
line_styles = {'-', '--', ':', '-.'};
line_colors = 'rgbk';
N = size(ACc,1);
x = (1:N)/5; % /5 to match your x-scale?
idx = [1; idx; N]
idx = 5×1
1 191 194 1547 4501
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
for ii = 1:numel(idx)-1
tmp = idx(ii):idx(ii+1);
plot(x(tmp),ACc(tmp,2), ...
'LineWidth',line_widths(ii), ...
'LineStyle',line_styles{ii}, ...
'Color',line_colors(ii));
end
  2 commentaires
Ron
Ron le 14 Nov 2024
Sir thank you so much for taking out time to help me solving this issue. I will run the code and will let you know about the status soon.
Voss
Voss le 19 Nov 2024
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 13 Nov 2024
After you
findchangepts(ACc(:,2),'Statistic','mean','MaxNumChanges',2);
then do
ax = gca;
%if you want to affect the line holding the original data
ax.Children(2).LineWidth = APPROPRIATE_LINE_WIDTH;
ax.Children(2).LineStyle = APPROPRIATE_LINE_STYLE;
ax.Children(2).Color = APPROPRIATE_COLOR;
%if you want to affect the lines showing the breaks in regions
ax.Children(1).LineWidth = APPROPRIATE_LINE_WIDTH;
ax.Children(1).LineStyle = APPROPRIATE_LINE_STYLE;
ax.Children(1).Color = APPROPRIATE_COLOR;
  1 commentaire
Ron
Ron le 14 Nov 2024
Sir thank you so much for taking out time to help me solving this issue. I will run the code and will let you know about the status soon.

Connectez-vous pour commenter.

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by