使用 stat_pointinterval() 时独立更改绘图元素大小
Independently changing the plot element sizes when using stat_pointinterval()
我一直在尝试使用 tidybayes 包中的 stat_pointinterval() 函数来创建一些图形,但 运行 遇到了一些自定义外观的问题。我在下面添加了我正在使用的代码示例以及输出图形的示例。我想做的是找到一种方法来独立更改点的大小和每个间隔。到目前为止,我已经能够改变点的大小,但我只能找到一种方法来改变整条线的宽度,而不是独立地改变每个线段的宽度(见下面的第二个图)。任何帮助都会很棒,或者如果有人对如何创建这样的情节有更好的想法。谢谢!
library(tidyverse)
library(tidybayes)
treat <- rep(c("Control", "T1", "T2", "T4"),100)
est <- rnorm(400,0,1)
df <- as.data.frame(cbind(treat, est)) %>%
mutate(treat = as.factor(treat),
est = as.numeric(est))
ggplot(data = df, aes(x=treat, y=est)) +
stat_pointinterval()
ggplot(data = df, aes(x=treat, y=est)) +
stat_pointinterval(.width = c(0.5,0.95),
size = 10)
独立设置点和段大小的一种方法是通过 point_size
参数设置点大小,并通过 [=14= 的 range
参数设置段大小] 默认值是 range=c(1, 6)
:
library(tidyverse)
library(tidybayes)
set.seed(123)
treat <- rep(c("Control", "T1", "T2", "T4"), 100)
est <- rnorm(400, 0, 1)
df <- as.data.frame(cbind(treat, est)) %>%
mutate(
treat = as.factor(treat),
est = as.numeric(est)
)
ggplot(data = df, aes(x = treat, y = est)) +
stat_pointinterval(
.width = c(0.5, 0.95),
point_size = 10
) +
scale_size_continuous(range = c(5, 20))
第二个选项是使用 after_stat
映射 factor(.width)
(其中 factor
转换为离散变量)到 size
aes 并通过以下方式设置大小scale_size_manual
:
ggplot(data = df, aes(x = treat, y = est)) +
stat_pointinterval(
aes(size = after_stat(factor(.width))),
.width = c(0.5, 0.95),
point_size = 10
) +
scale_size_manual(values = c("0.5" = 10, "0.95" = 5))
我一直在尝试使用 tidybayes 包中的 stat_pointinterval() 函数来创建一些图形,但 运行 遇到了一些自定义外观的问题。我在下面添加了我正在使用的代码示例以及输出图形的示例。我想做的是找到一种方法来独立更改点的大小和每个间隔。到目前为止,我已经能够改变点的大小,但我只能找到一种方法来改变整条线的宽度,而不是独立地改变每个线段的宽度(见下面的第二个图)。任何帮助都会很棒,或者如果有人对如何创建这样的情节有更好的想法。谢谢!
library(tidyverse)
library(tidybayes)
treat <- rep(c("Control", "T1", "T2", "T4"),100)
est <- rnorm(400,0,1)
df <- as.data.frame(cbind(treat, est)) %>%
mutate(treat = as.factor(treat),
est = as.numeric(est))
ggplot(data = df, aes(x=treat, y=est)) +
stat_pointinterval()
ggplot(data = df, aes(x=treat, y=est)) +
stat_pointinterval(.width = c(0.5,0.95),
size = 10)
独立设置点和段大小的一种方法是通过 point_size
参数设置点大小,并通过 [=14= 的 range
参数设置段大小] 默认值是 range=c(1, 6)
:
library(tidyverse)
library(tidybayes)
set.seed(123)
treat <- rep(c("Control", "T1", "T2", "T4"), 100)
est <- rnorm(400, 0, 1)
df <- as.data.frame(cbind(treat, est)) %>%
mutate(
treat = as.factor(treat),
est = as.numeric(est)
)
ggplot(data = df, aes(x = treat, y = est)) +
stat_pointinterval(
.width = c(0.5, 0.95),
point_size = 10
) +
scale_size_continuous(range = c(5, 20))
第二个选项是使用 after_stat
映射 factor(.width)
(其中 factor
转换为离散变量)到 size
aes 并通过以下方式设置大小scale_size_manual
:
ggplot(data = df, aes(x = treat, y = est)) +
stat_pointinterval(
aes(size = after_stat(factor(.width))),
.width = c(0.5, 0.95),
point_size = 10
) +
scale_size_manual(values = c("0.5" = 10, "0.95" = 5))