Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使随机生成的数据在R中的绘图上不那么均匀_R_Ggplot2_Random - Fatal编程技术网

如何使随机生成的数据在R中的绘图上不那么均匀

如何使随机生成的数据在R中的绘图上不那么均匀,r,ggplot2,random,R,Ggplot2,Random,我不确定这是否可能,但我正在绘制一个随机生成的数据图来演示一些东西,所以我需要生成一些灰色的具有强正相关性的观察值,然后生成一些红色的没有相关性的观察值,这只是观察值的云状 我得到了灰色的观测值没问题,但是红色的观测值在图上以正方形的形式出现。我需要它们少一些方形,多一些云彩般的随机性。我尝试过几种不同的随机数分布方法,但似乎没有一种有效。当我减少样本量时,它确实看起来不那么方正,但我仍然希望它有相当数量的样本(即灰色有2000个样本,红色有500-2000个)。我试过rnorm,runif,s

我不确定这是否可能,但我正在绘制一个随机生成的数据图来演示一些东西,所以我需要生成一些灰色的具有强正相关性的观察值,然后生成一些红色的没有相关性的观察值,这只是观察值的云状

我得到了灰色的观测值没问题,但是红色的观测值在图上以正方形的形式出现。我需要它们少一些方形,多一些云彩般的随机性。我尝试过几种不同的随机数分布方法,但似乎没有一种有效。当我减少样本量时,它确实看起来不那么方正,但我仍然希望它有相当数量的样本(即灰色有2000个样本,红色有500-2000个)。我试过
rnorm
runif
sample
,和
truncnorm
,但它们都只是不断产生红色框,或者它们没有停留在应该出现的一般区域(x在2到4之间,y在20到30之间)

有人知道我如何减少盒子的厚度,使它看起来不那么均匀吗

#生成相关的

n您似乎在寻找包装质量中mvrnorm提供的多元正态随机数。可以通过参数mu指定云的中点,通过参数Sigma中的协方差矩阵指定云的形状。云的方向是特征向量到σ最大特征值的方向


由于正态分布的范围不受限制,您可能希望在某个阈值处截断结果。

您可以使用正态分布绝对值的立方根:

# generate noisy data
set.seed(69)
b_x <- 1.3 * (abs(rnorm(2000)))^0.33 + 2
b_y <- 6 * (abs(rnorm(2000)))^0.33 + 20
biased <- data.frame(b_x, b_y)
biased$indicator <- 'biased'
colnames(biased) <- c("x", "y", "indicator")

# put together on plot
dummy_data <- rbind(trended, biased)
ggplot(dummy_data, aes(x = x, y = y, color = indicator)) + 
  geom_point(show.legend = FALSE) +
  scale_color_manual(values = c("#FF0000", "#999999")) +
  theme_bw() +
  theme(plot.title = element_text(size=9, face='bold'), 
        legend.position = "none") +
  labs(title = "The Impact of Selection Bias", x = "X", y = "Y")
#生成噪声数据
种子(69)

b_x另一种方法是用平滑边缘的东西卷积均匀分布的样本。例如,使用类似高斯函数的函数:


n我想你可能想改变情节?这有帮助吗?@Mike这可能是我需要的,但是否可以只在特定的颜色或特定的区域抖动?我不想让它覆盖整个情节,但就在右上角,从文档中我看不出这也是一个很好的选择,产生了比我最初得到的盒子更好的效果,谢谢
# generate noisy data
set.seed(69)
b_x <- 1.3 * (abs(rnorm(2000)))^0.33 + 2
b_y <- 6 * (abs(rnorm(2000)))^0.33 + 20
biased <- data.frame(b_x, b_y)
biased$indicator <- 'biased'
colnames(biased) <- c("x", "y", "indicator")

# put together on plot
dummy_data <- rbind(trended, biased)
ggplot(dummy_data, aes(x = x, y = y, color = indicator)) + 
  geom_point(show.legend = FALSE) +
  scale_color_manual(values = c("#FF0000", "#999999")) +
  theme_bw() +
  theme(plot.title = element_text(size=9, face='bold'), 
        legend.position = "none") +
  labs(title = "The Impact of Selection Bias", x = "X", y = "Y")