Маркировка определенной точки на графике в MATLAB - PullRequest
2 голосов
/ 14 марта 2012

Полагаю, это очень простой вопрос.

У меня есть график, который я создал в MATLAB. Это график зависимости мощности (ось Y) от частоты (ось X).

Диапазон моей оси х от 0 до 1000. Теперь вот моя проблема. Я хочу нарисовать линию от определенных точек на оси X к графику. Например, для пунктов 40, 400, 950.

Используя set(gca, 'XTick', [40 400 950]);, я могу отметить эти конкретные точки. Но я хочу сделать его более заметным, рисуя прямые вертикальные линии из этих точек.

Любая помощь будет принята с благодарностью. Спасибо.

Ответы [ 3 ]

2 голосов
/ 14 марта 2012

Используйте plot с конечными точками с одинаковым значением x и разными значениями y.(и не забудьте использовать myaa , чтобы украсить вывод).

x = 0:0.1:2*pi;
y = sin(x);
plot(x,y);
hold on;
plot([0.6 0.6], [-1 1], 'Color', [0.7 0.7 0.7], 'LineWidth', 2);
plot([3.6 3.6], [-1 1], 'Color', [0.7 0.7 0.7], 'LineWidth', 2);

enter image description here

1 голос
/ 15 марта 2012

Если вы делаете это часто, я бы порекомендовал вам отличное представление от FileExchange:

hline и vline

Просто сделайте:

vline([40 400 950])

Прочтите документацию по функции, если хотите, чтобы строка имела свойства, отличные от значений по умолчанию.

0 голосов
/ 14 марта 2012

Обычно я делаю это, используя что-то вроде этого (есть powers - это вектор строки).

powers = randn(1,1000)+40;
plot([1;1]*[40 400 950], [[0 0 0]; [powers([40 400 950])]],'k-')
...