превратить точечный график в участок - PullRequest
2 голосов
/ 19 октября 2010

У меня есть 2D график рассеяния в MATLAB.Можно ли интерполировать график рассеяния для создания графика площади?

Ответы [ 2 ]

3 голосов
/ 19 октября 2010

Если вы просто пытаетесь нарисовать один большой заполненный многоугольник вокруг всего набора рассеянных точек, вы можете использовать функцию CONVHULL , чтобы найти выпуклую оболочку, содержащую ваши точки, и функцию PATCH для отображения выпуклой оболочки:

x = rand(1,20);              %# 20 random x values
y = rand(1,20);              %# 20 random y values
hullPoints = convhull(x,y);  %# Find the points defining the convex hull
patch(x(hullPoints),y(hullPoints),'r');  %# Plot the convex hull in red
hold on;                     %# Add to the existing plot
scatter(x,y);                %# Plot your scattered points (for comparison)

И вот результирующая цифра:

alt text

0 голосов
/ 19 октября 2010

Scatter, как правило, используется для представления данных, где вы не можете использовать линейный график, т. Е. Где каждый x может иметь много разных значений y, поэтому вы не можете напрямую преобразовать его в граф области - это было бы бессмысленно.Если ваши данные действительно представляются в виде линейного графика, то передайте их непосредственно area.

Так что я не совсем уверен, что вы хотите, но вот некоторые возможности:

  1. Вы можете создать диаграмму Вороной на основе ваших очков.Это покажет область рядом с вашими точками, показывая, какие точки находятся ближе к определенной точке: voronoi(x,y), или см. Справку .

  2. Вы можете выделить или квантоватьваши данные каким-то образом, поместив их в сетку, а затем построить график сетки.Это также можно считать гистограммой, поэтому прочтите это.

  3. Вы можете просто использовать более крупные маркеры рассеяния (scatter(x,y,scale), где scale - это те же размеры, что и x, иy).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...