set number of ticks at any given time
62 ビュー (過去 30 日間)
古いコメントを表示
hi,
i am searching for something to set the amunt of ticks to a fix value of a plot.
the reason is, right now im plotting live data and the plot constantly changes the number of ticks and therefore the space inbetween, wich makes it harder to read than necessary.
now i know that i can change XTick to values of my liking, but when i do, i also have to change them all the time in the loop, so my tought was to simply change the amount of xticks. however, i couldnt find a solution. i am using animatedline, does that make a difference?
sincerely
Andre
0 件のコメント
採用された回答
Steven Lord
2023 年 6 月 20 日
If you know the bounds over which your data to be plotted spans, I would set those limits first using axis or xlim and ylim (and set the ticks and tick labels with xticks, xticklabels, etc.) then addpoints to your animatedline. Doing so means that the axes will not need to recalculate its limits to include the new points and so the ticks won't need to change during the plotting.
Run the following two sections of code and watch the plotting. The first doesn't need to change the limits at all once the axes is created by the axis call. The second updates the limits with each new point. [The effect in MATLAB Answers is the same, since it only shows the final results, but in an interactive MATLAB session you will be able to see the difference.]
With axes limits set initially:
x = 0:10;
y = x.^2;
[minX, maxX] = bounds(x);
[minY, maxY] = bounds(y);
axis([minX maxX minY maxY])
h = animatedline(NaN, NaN);
for k = 1:numel(x)
addpoints(h, x(k), y(k));
pause(1)
end
Without axes limits set initially:
figure
h = animatedline(NaN, NaN);
for k = 1:numel(x)
addpoints(h, x(k), y(k));
pause(1)
end
その他の回答 (1 件)
Richard Burnside
2023 年 6 月 20 日
The "xticks" and "yticks" command will let you manually set your tick values.
参考
カテゴリ
Help Center および File Exchange で Animation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!