Как можно соединить точки точечной диаграммы после построения и сделать линию из пунктирной диаграммы?
соединение точек точечной диаграммы и создание линии
Ответы (4)
Я предполагаю, что вы создали точечную диаграмму из координат x
и y
,
plot(x,y,'.');
Присоединяйтесь к ним с
plot(x,y,'.');
hold on;
plot(x,y,'-');
Или в одной команде
plot(x,y,'.-');
Это то, что вы хотели?
Если у вас есть существующий график в виде точечной диаграммы, вы не можете просто соединить точки, не зная, какие точки связаны с какими другими.
Если вы знаете порядок/связь точек, то вы могли бы просто использовать функцию графика, чтобы сделать это в первую очередь. Звонок
plot(x,y,'-')
соединит точки отрезками прямой линии. Если вы хотите использовать символ маркера в каждой точке вдоль линии, вы можете добавить один из маркеров, которые позволяет график, например:
plot(x,y,'o-')
Вы можете получить список разрешенных маркеров из
help plot
Если вы использовали разброс для набора точек и теперь хотите наложить линию, соединяющую точки, используйте функцию удержания, чтобы заставить Matlab построить график поверх графика разброса. Например,
scatter(x,y)
hold on
plot(x,y,'-')
hold off
Опять же, любой из этих вариантов требует, чтобы вы знали связь между точками. Есть несколько схем, которые иногда могут работать для восстановления этой связи из списка изолированных точек. Один из этих методов называется CRUST и часто используется для 3- д реконструкция поверхности. Я нашел много ссылок простым поиском «алгоритма корки».
Если у вас есть диаграмма рассеяния (я подозреваю, что она сделана с помощью функции рассеяния) и по какой-то причине вы не хотите перерисовывать ее с помощью графика, вот что вы можете сделать, чтобы соединить точки:
h = findobj(gca,'type','hggroup');
hold on
for k=1:numel(h)
x = get(h(k),'xdata');
y = get(h(k),'ydata');
plot(x,y,'-')
end
hold off
Точки будут соединены в их первоначальном порядке. Если вы хотите, вы можете отсортировать данные перед графиком, например, по x:
[x,ind] = sort(x);
y = y(ind);
Чтобы ответить на вопрос, как это сделать в Maple, вы можете просто использовать PointPlot из Статистика пакет с параметром style
, установленным на line
или pointline
. Например:
Statistics:-PointPlot([2, 4, 6, 4], xcoords=[1, 2, 3, 4], style=pointline);
При указании опции style
= pointline
отображаются как точки, так и соединительная линия; style
= line
показывает только строку.