r - 如何在一张图上绘制 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) }
}
解决方案
我不完全确定你想要做什么,但我将如何去做我认为你想要做的事情:
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()
推荐阅读
- r - 计算数据框中值之间的交互比例
- java - 为什么 Java StringLatin1.regionMatchesCI 方法在比较字符时执行 toUpperCase() 而不是 toLowerCase()?
- pine-script - Pine 脚本:无法获取 Ichimoku 引导线的上(或下)值
- python - tf.get_variable 初始化器 Tensorflow
- node.js - 如何使用 pm2 配置文件启动带有参数的 java 应用程序?
- azure-devops - 提前期和周期时间 - 使用 Power BI 数据连接器连接到分析
- php - 无法使用 fcm 令牌 firebase 向 ios 发送推送通知
- python - 使用 python seaborn 为具有不同权重的多维数据的离散颜色图
- javascript - 如何在 amCharts 中禁用光标缩放?
- docker - 如何连接到本地 clickhouse db 表单容器?