如何使 geom_jitter 散点图可重现?
How to make scatterplot with geom_jitter plot reproducible?
我正在使用澳大利亚艾滋病生存数据。这次创建散点图。
为了显示不同报告传播类别(T.categ)的生存性别,我这样绘制图表:
data <- read.csv("https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/MASS/Aids2.csv")
data %>%
ggplot() +
geom_jitter(aes(T.categ, sex, colour = status))
它显示了一个图表。但是每次我 运行 代码,它似乎都会产生不同的图表。这里有 2 个放在一起。
代码有什么问题吗?是否正常(每个 运行 不同的图表)?
尝试在绘图时设置种子:
set.seed(1); data %>%
ggplot() +
geom_jitter(aes(T.categ, sex, colour = status))
来自手册?geom_jitter
:
It adds a small amount of random variation to the location of each point, and is a useful way of handling overplotting caused by discreteness in smaller datasets.
要使 "random variation" 可重现,我们需要在绘图时设置 set.seed
。
如果我想随机生成一些东西,但可以重现排列等。我使用示例来设置种子:
my.seed = sample(1:10000,1)
set.seed(my.seed)
然后我可以用它来写一个文件名,例如.
save(my_plot,paste0('plot',my.seed,'.rda')
如果您使用 geom_point
而不是 geom_jitter
,您可以添加 position = position_jitter()
,它接受种子参数:
library(ggplot2)
p <- ggplot(mtcars, aes(as.factor(cyl), disp))
p + geom_point(position = position_jitter(seed = 42))
p + geom_point(position = position_jitter(seed = 1))
然后回到“42”
p + geom_point(position = position_jitter(seed = 42))
由 reprex package (v0.3.0)
于 2020-07-02 创建
我正在使用澳大利亚艾滋病生存数据。这次创建散点图。
为了显示不同报告传播类别(T.categ)的生存性别,我这样绘制图表:
data <- read.csv("https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/MASS/Aids2.csv")
data %>%
ggplot() +
geom_jitter(aes(T.categ, sex, colour = status))
它显示了一个图表。但是每次我 运行 代码,它似乎都会产生不同的图表。这里有 2 个放在一起。
代码有什么问题吗?是否正常(每个 运行 不同的图表)?
尝试在绘图时设置种子:
set.seed(1); data %>%
ggplot() +
geom_jitter(aes(T.categ, sex, colour = status))
来自手册?geom_jitter
:
It adds a small amount of random variation to the location of each point, and is a useful way of handling overplotting caused by discreteness in smaller datasets.
要使 "random variation" 可重现,我们需要在绘图时设置 set.seed
。
如果我想随机生成一些东西,但可以重现排列等。我使用示例来设置种子:
my.seed = sample(1:10000,1)
set.seed(my.seed)
然后我可以用它来写一个文件名,例如.
save(my_plot,paste0('plot',my.seed,'.rda')
如果您使用 geom_point
而不是 geom_jitter
,您可以添加 position = position_jitter()
,它接受种子参数:
library(ggplot2)
p <- ggplot(mtcars, aes(as.factor(cyl), disp))
p + geom_point(position = position_jitter(seed = 42))
p + geom_point(position = position_jitter(seed = 1))
然后回到“42”
p + geom_point(position = position_jitter(seed = 42))
由 reprex package (v0.3.0)
于 2020-07-02 创建