首页 > 解决方案 > 如何在一张图上绘制 1000 个点,不同的点用不同的颜色?

问题描述

我一直在尝试在 1 和 0 之间设置 1000 个值,如果它们符合 if 语句中的特定规则,我希望这些点以特定的形状和颜色放置。我试过运行我的代码,但我得到的只是一个点在 (0, 0) 的图形。

numOne <- sample(0:1, 1)
numTwo <- sample(0:1, 1)

plot(0,0, pch=5, col=5)

for(i in 999){
    a <- sample(0:1, 1)
    b <- sample(0:1, 1)

    if((a + b < 1) && (a - b < 0)){ lines(0, 0, pch=1, col=1) }
    if((a + b < 1) && (a - b < 0)){ lines(0, 0, pch=2, col=2) }
    if(!(a + b < 1) && (a - b < 0)){ lines(0, 1, pch=3, col=3) }
    if(!(a + b < 1) && (a - b < 0)){ lines(1, 0, pch=4, col=4) }

}

标签: r

解决方案


我不完全确定你想要做什么,但我将如何去做我认为你想要做的事情:

library(dplyr)
library(ggplot2)

# create a dataframe with random x and y values
data <- data.frame(x = runif(n = 1000, min = 0, max = 1),
                   y = runif(n = 1000, min = 0, max = 1))

# add a new column to the data identifying the group
data <- data %>% 
           mutate(group = if_else(condition = (x + y < 1) & (x - y < 0), 
                                  true = 'a', 
                                  false = 'b'))

# plot the data with a different shape and color for each group
ggplot(data, 
       aes(x = x,
           y = y,
           color=group,
           shape=group)) +
   geom_point()

这是输出


推荐阅读