如何";作物“;将MATLAB绘图转换为三角形绘图?

如何";作物“;将MATLAB绘图转换为三角形绘图?,matlab,matlab-figure,Matlab,Matlab Figure,我有一个二维散点图,其中所有的点实际上都保证落入一个等边三角形。因此,我希望从默认的正方形x-y系统中“裁剪”感兴趣的区域,即三角形 我该怎么做?如果所提供的方法可以很容易地扩展到正方形、等边五边形等,则更好 p.S.:等边三角形的顶点是[[0.577350269189626];[0.50000000000-0.28867594813];[-0.50000000000-0.28867594813]用于检测多边形内部的点。这适用于任何多边形,而不仅仅是三角形。然后,可以删除轴并使用手动打印多边形

我有一个二维散点图,其中所有的点实际上都保证落入一个等边三角形。因此,我希望从默认的正方形x-y系统中“裁剪”感兴趣的区域,即三角形

我该怎么做?如果所提供的方法可以很容易地扩展到正方形、等边五边形等,则更好

p.S.:等边三角形的顶点是
[[0.577350269189626];[0.50000000000-0.28867594813];[-0.50000000000-0.28867594813]
用于检测多边形内部的点。这适用于任何多边形,而不仅仅是三角形。然后,可以删除轴并使用手动打印多边形,以产生所需的效果

%// Define data:
x = rand(1,1000)-.5;
y = rand(1,1000)*.9-.3;
p = [0 0.577350269189626;
     0.500000000000000 -0.288675134594813;
     -0.500000000000000 -0.288675134594813];

%// Plot data before cropping
figure
plot(x,y,'o');

%// Select points inside the polygon:
ind = inpolygon(x,y,p(:,1),p(:,2));

%// Plot data after cropping
figure
plot(x(ind),y(ind),'o');

%// Plot cropped data with polygon and without axes:
figure
patch(p(:,1), p(:,2), 'w', 'edgecolor', 'r') %// polygon white background and red border
hold on
plot(x(ind),y(ind),'o'); %// plot points after polygon
axis off %// remove axes
以下是三个示例图:


灰显背景,画一个白色三角形,然后分散点?
T
你的三角形点,
填充(T(:,1),T(:,2),“白色”,“边缘颜色”,“无”)
设置(gca,'color','none')
按住
然后分散点?顺便说一句:如果你导出的数字,你不应该看到灰色的背景无论如何!对不起,你误解了我的意思。我希望有一个本身就是三角形的情节。你们可以想象我们倾斜y轴,直到它与一个三角形边缘碰撞。想象不出它是如此简单。谢谢你我一开始不明白你想要这个。我对我的答案进行了编辑,以包含对由此引起的混乱的担忧。更好的是,是否可以使x轴和y轴关闭,z轴打开(我已经扩展到3D)?在互联网上没有解决方案…@rayryend随着我慢慢理解这个问题的含义,答案逐渐增加:-)