Как рисовать разнесенные линии сетки в Matlab
На mathworks я нашел код, который предположительно рисует линии сетки на графике:
g_x = -25:1.25:0;
g_y = -35:2.5:-5;
for i = 1:length(g_x)
plot([g_x(i) g_x(i)],[g_y(1) g_y(end)],'k:')% y grid lines
hold on
end
for i=1:length(g_y)
plot([g_x(1) g_x(end)],[g_y(i) g_y(i)],'k:') % x grid lines
hold on
end
Я не понимаю команды построения графика: например, линии сетки y-один из входных сигналов-это вектор, содержащий все точки интервала оси x, где я хочу иметь сетку. Эти точки даны в двух столбцах и назначены второму вектору, который содержит только первую и последнюю точки, показанные на оси Y. Как я понимаю эта команда, например, он возьмет первый элемент g_x(1) и g_y(1) и построит a : , затем он возьмет g_x(2) и g_y (1) и построит :, и так далее. Но как он продолжает строить график: от g_y(1) непрерывно до g-y (конец)?
2 ответа:
Чтобы непосредственно ответить на ваш вопрос, он просто строит две конечные точки каждой линии сетки, и поскольку по умолчанию
LineStyle
используетсяplot
сплошной линией, они будут автоматически соединены. Этот код создает все перестановки конечных точек и выводит их на график, чтобы сформировать сетку.Вместо того, чтобы создавать собственные объекты печати (если вы используете R2015b или более позднюю версию), вы можете просто использовать второстепенные линии сетки и изменять расположение второстепенных делений
axes
.g_x = -25:1.25:0; g_y = -35:2.5:-5; ax = axes('xlim', [-25 0], 'ylim', [-35 -5]); % Turn on the minor grid lines grid(ax, 'minor') % Modify the location of the x and y minor tick marks ax.XAxis.MinorTickValues = g_x; ax.YAxis.MinorTickValues = g_y;
В основном код делает это:
g_x = -25:1.25:0;
Генерирует массив со значениями
-25.0000 -23.7500 -22.5000 -21.2500 ... 0
Это позиции, в которых проводятся вертикальные линииТо же самое справедливо и для g_y, но, конечно, это определяет, где проводятся горизонтальные линии. Опция
'k'
определяет, что это пунктирная линия.И петли просто Лоо через массивы. Таким образом, в первой итерации функция построения графика рисует линию из позиции
[-25, -35]
На позицию
[-25, -5]
Итак, если вы хотите чтобы изменить сетку, просто измените значения, хранящиеся в
g_x
g_x = -25:3.0:0;
Будет, например, рисовать вертикальные линии шириной
3.0
Я надеюсь, что это имеет смысл для вас.