如何使用 geom_jitter 图制作散点图可重现?

Mar*_*k K 8 r scatter-plot ggplot2

我正在使用澳大利亚艾滋病生存数据。这次要创建散点图。

为了显示不同报告传播类别(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))
Run Code Online (Sandbox Code Playgroud)

它显示了一个图表。但是每次运行代码时,它似乎都会生成不同的图表。这是其中的 2 个组合。

在此处输入图片说明

代码有什么问题吗?是否正常(每个运行不同的图表)?

Tje*_*ebo 7

如果使用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))
Run Code Online (Sandbox Code Playgroud)


p + geom_point(position = position_jitter(seed = 1))
Run Code Online (Sandbox Code Playgroud)

然后回到“42”


p + geom_point(position = position_jitter(seed = 42))
Run Code Online (Sandbox Code Playgroud)

reprex 包(v0.3.0)于 2020 年 7 月 2 日创建


zx8*_*754 5

绘图时尝试设置种子:

set.seed(1); data %>%
  ggplot() +
  geom_jitter(aes(T.categ, sex, colour = status))
Run Code Online (Sandbox Code Playgroud)

从手册?geom_jitter

它为每个点的位置添加了少量随机变化,是处理较小数据集离散性引起的过度绘图的一种有用方法。

为了使“随机变化”可重现,我们需要set.seed在绘图时进行设置。