Change Line width and Line color in findchangepts function.

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 comentario

I did forget to add the code I am using. This is my code.
findchangepts(ACc(:,2),'Statistic','mean','MaxNumChanges',2); hold on

Iniciar sesión para comentar.

 Respuesta aceptada

Voss
Voss el 13 de Nov. de 2024
Editada: Voss el 13 de Nov. de 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 comentarios

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.
You're welcome!

Iniciar sesión para comentar.

Más respuestas (1)

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 comentario

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.

Iniciar sesión para comentar.

Productos

Versión

R2023a

Preguntada:

Ron
el 13 de Nov. de 2024

Comentada:

el 19 de Nov. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by