如何从散点图中选择多组数据点(如流式细胞术/细胞分选中的门控)?

10ビュ(過去30日間)
我有2个列向量在散点图上。这是单元排序数据。我门控的数据使用参考线(见png),我希望能够导出(x,y)数据点之间的特定行。这可能吗?我用R2019b。

採用された回答

亚当Danz
亚当Danz 2021 年 9 月 28 日
編集済み:亚当Danz 2021 年 9 月 30 日
利用每条参考线的斜率和y截距,确定哪些点的y值小于上一条线,哪些点的y值大于下一条线。
创建演示数据 .我假设您已经计算了每个x和y的log(),因为坐标轴尺度不是log。
X = exp(linspace(2.2,5.8,500));
y = exp(日志(x) +兰德(大小(x))。* linspace(2。1元素个数(x)) 1);
定义每条直线的斜率和y截距
斜率= 0.74484;
Yint = -1:.5:2;
将x,y转换为log
Xlog = log(x);
Ylog = log(y);
阴谋的结果
H = plot(xlog, ylog,“o”);
xlim ([2,6])
ylim ([5, 7.7])
添加参考线 .我假设你们已经知道斜率和y截距了。
arrayfun (@ (y) refline(斜率,y) yint)
%标签行数
Text (6*ones(size(yint)), slope*6+yint, compose(' % d '1:元素个数(yint)))
在两条参考线之间隔离点 .在这个演示中,我们分离了第3行和第5行之间的点。
%隔离第3行和第5行之间的点
isBetween = ylog > slope*xlog+yint(3) & ylog < slope*xlog+yint(5);
% ^ ^
绘制孤立点并返回它们的x,y值
标记所选点
持有
xBetween = xlog(isBetween);
yBetween = ylog(isBetween);
h2 = plot(xBetween, yBetween,“r”。);
传奇([h, h2),的所有数据第3行和第5行之间的数据
2件のコメント
亚当Danz
亚当Danz 2021 年 9 月 30 日
看起来参考线是平行的,因此斜率相同。如果是这样,它们只随y轴截距变化。我定义了一个斜率和7个y轴截距(见变量) 而且 yint ).y轴截距是按升序排列的,所以底部的直线是直线1,顶部的直线是直线7。
在“ 在两条参考线之间隔离点 ,我选择了第3和第5行。

サ▪▪ン▪▪ンしてコメントする。

その他の回答(0件)

カテゴリ

了解更多散点图帮助中心而且文件交换

タグ

製品

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的