Matlab figure: Replace xaxis with custom labels

조회 수: 9 (최근 30일)
Travis Head
Travis Head 2023년 8월 20일
댓글: Adam Danz 2023년 8월 20일
I have a figure and would like to replace the x axis of the plot to a custom one. So now there are the values from 0 to 300 on the x axis, but I need it to show the values from 1 to 10 in a equal distance on the whole width of the figure. How do I do that?
Here are the figure and the code, if this helps:
sun = dataset.sun
%time = dataset.time
figure
plot(sun)
So far I tried some options for manipulating the existing x axis, but not really succesfull so far.
  댓글 수: 1
Adam Danz
Adam Danz 2023년 8월 20일
When you use the plot(y) syntax, MATLAB generates the x-values 1:n where n is the number of values in y.
Instead, define x as @Sam Chak demonstrated and us plot(x,y).

댓글을 달려면 로그인하십시오.

답변 (2개)

Sam Chak
Sam Chak 2023년 8월 20일
편집: Sam Chak 2023년 8월 20일
Is the following workaround acceptable?
time = linspace(0, 30, 301); % original x-axis
sun = tanh(1/3*(time - 15));
plot(sun), grid on, xlim([0 300])
xlabel('data points'),
% generate 2nd x-axis to have the same number of elements in 'sun'
x2 = linspace(1, 10, numel(sun));
plot(x2, sun), grid on, xlim([1 10])
xlabel('redefined x-axis'),

Star Strider
Star Strider 2023년 8월 20일
Another approach —
sun = sin((0:240)*pi/25).^2 .* exp(-0.015*(0:240));
figure
plot(sun)
figure
plot(sun)
xt = xticks;
xticks(linspace(min(xt), max(xt), 10));
xticklabels(1:10)
.

카테고리

Help CenterFile Exchange에서 Axis Labels에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by