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!