Как установить глобальные пределы осей в MATLAB на минимальные и максимальные данные, нанесенные на график? - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь нарисовать некоторые цифры в MATLAb.После использования функции подплота, чтобы иметь несколько графиков рядом друг с другом, границы осей меняются, поэтому у меня нет их для минимальных и максимальных значений x и y, и вместо этого всегда есть некоторый дополнительный пробел.

Я пытаюсь найти способ golobally установить значения осей x и y на их минимальное и максимальное значения.У меня есть приблизительно 50 графиков на моей фигуре, и для каждого графика x и y названы по-разному ... Каждый раз, когда MATLAB задает ограничение для x и y их минимальным и максимальным, требуется действительно время и добавляется к числу строк ...

Так есть ли глобальный способ определения этого?

Я также посмотрел на похожий вопрос , но он, похоже, не отвечает на мой вопрос.

Это небольшой фиктивный код, показывающий похожую проблему, с которой я столкнулсяс моими графиками ...

x = linspace(0,2*pi,20); 
y = sin(x); 
figure(1) 
subplot(4,3,1)
plot(x,y)
title('Original')
fft_y = fft(y); 
subplot(4,3,2)
plot(abs(fft_y))
title('Spectrum')
subplot(4,3,3)
plot(angle(fft_y)) 
title('Phase')

enter image description here

1 Ответ

0 голосов
/ 22 октября 2018

Во-первых, чтобы установить пределы осей x и y на их минимальное и максимальное значения, используйте inf или -inf для пределов, которые вы хотите, чтобы оси выбирались автоматически.Например, ось ([- inf 10 0 inf]) позволяет осям выбрать подходящий минимальный предел оси x и максимальный предел оси y.

Во-вторых, чтобы установить глобальные пределы оси x и y, позвольте ax_n= подплот (4,3, n) для каждого подплота.Затем используйте ось ([ax_1, ax_2, ax_3], [-inf inf -inf inf]) в конце, чтобы установить все вспомогательные участки одновременно.

x = linspace(0,2*pi,20); 
y = sin(x); 
figure(1) 
ax_1 = subplot(4,3,1)
plot(x,y)
title('Original')
fft_y = fft(y); 
ax_2 = subplot(4,3,2)
plot(abs(fft_y))
title('Spectrum')
ax_3 = subplot(4,3,3)
plot(angle(fft_y))
title('Phase')

axis([ax_1, ax_2, ax_3], [-inf inf -inf inf]);

Выход: enter image description here

...