将散点图转换为面积图

时间:2010-10-19 05:41:48

标签: matlab

我在MATLAB中有一个2D散点图。是否可以插入散点图以创建面积图?

2 个答案:

答案 0 :(得分:3)

如果您只是想在整个散乱点周围绘制一个大的填充多边形,可以使用函数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

答案 1 :(得分:0)

Scatter通常用于表示不能使用折线图的数据,即每个x可能有许多不同的y值,因此您无法直接转换为区域图 - 这将毫无意义。如果您的数据实际上可以表示为折线图,则直接将其传递给area

所以我不太确定你想要什么,但这里有一些可能性:

  1. 您可以根据积分创建Voronoi图表。这将显示您的点附近的区域,显示哪些点更接近特定点:voronoi(x,y)see the help

  2. 您可以以某种方式对数据进行存储或量化,使其适合网格,然后绘制网格。这也可以被认为是直方图,所以请仔细阅读。

  3. 您可以使用更大的散点图标scatter(x,y,scale),其中scale的尺寸与xy相同。