繁体   English   中英

如何在 R 中生成点?

[英]How to generate points in R?

我需要在 R 中生成点。 我想得到 plot 就像在这个例子中:

想要的情节

我的主要任务:生成一个由 3 个集群组成的 2D 数据集,每个集群都沿着其中一个轴强烈拉伸。

我也有代码示例:

x <- rbind(matrix(rnorm(100, mean=0.2, sd=0.1), ncol=2), matrix(rnorm(100, mean=0.2, sd=0.1), ncol=2))
plot(x)

我想我应该更改参数,但我不知道如何。

我尝试过这种方法,看看它,如果它有帮助。

# Creating 3 uniform data distributions 
a = matrix(runif(100, 0, 5), ncol=2)   
b = matrix(runif(100, 10, 15), ncol=2) 
c = matrix(runif(100, 10, 15), ncol=2) 

b[,1] = b[,1] - 10 # removing 10 units from x aixs
c[,2] = c[,2] - 10 # removing 10 units from y aixs

x <- rbind(a,b,c)  # binding rowise
plot(x)            # plot

Output: 方法 1 的输出

# Creating 3 uniform data distributions 
a = matrix(runif(100, 2, 4), ncol=2)   
b = matrix(runif(100, 1, 5), ncol=2) 
c = matrix(runif(100, 1, 5), ncol=2) 

b[,1] = b[,1] /5 # scaling x axis by 5 units
c[,2] = c[,2] /5 # scaling y axis by 5 units

x <- rbind(a,b,c)  # binding rowise
plot(x)            # plot

Output: 方法 2 的输出

另一种方法

# Creating normal distribution over X axis and uniform distribution over Y axis
a = cbind(rnorm(100, mean=3, sd=1),
        runif(100, 0, 1))

# Creating uniform distribution over X axis and normal distribution over Y axis
b = cbind(runif(100, 0, 1),
        rnorm(100, mean=3, sd=1))

# Creating normal distribution over both axis ranging from 2-4
c = matrix(runif(100, 2, 4), ncol=2)   

# binding row wise 300 samples 100 from each cluster and plotting
plot(rbind(a, b, c))

Output: 方法 3 的输出

希望能帮助到你!

您的代码正在运行:尝试:

dev.off()
x <- rbind(matrix(rnorm(100, mean=0.2, sd=0.1), ncol=2), matrix(rnorm(100, mean=0.2, sd=0.1), ncol=2))
plot(x)

output: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM