我是一名新手程序员,希望绘制高度分组的变量。具体来说,我试图绘制一个由5个其他变量分组的变量。以下是我正在使用的示例数据。
library(ggplot2)
library(tibble)
set.seed(42)
mydf <- tibble(
grp = rep(c('A', 'B'), length.out = 32, each = 16),
sex = rep(c('M', 'F'), length.out = 32, each = 8),
cond = rep(c('Wet', 'Dry'), length.out = 32, each = 4),
measure = rep(c('Tempature', 'Volume'), length.out = 32, each = 2),
kind = rep(c('Experimental', 'Control'), length.out = 32, each = 1),
value = rnorm(32) * 100,
)
ggplot(mydf, aes(x = grp, y = value, col = cond)) +
geom_point() +
facet_wrap(sex~measure + kind)
然而,输出相当混乱。是否可以为每次测量创建单独的刻面图?绘制此类数据的正确方法是什么?
谢谢
答案 0 :(得分:1)
为了便于比较,我将面对不超过两个变量。在这种情况下,我也会使用facet_grid()
而不是facet_wrap()
,因为我认为如果它们位于不同的轴上,则更容易跟踪不同的构面尺寸。
在您的情况下,您希望区分5个二进制变量的测量值。
x轴上的“grp”,颜色区分的“sex”,以及其余3个刻面中的2个,我们需要引入另一个美学参数来区分最后一个变量。
在这个的情况下,由于没有太多的点可以绘制,我建议形状。
ggplot(mydf, aes(x = grp, y = value,
color = cond,
shape = kind)) +
geom_point(size = 5, stroke = 2) +
facet_grid(sex~measure) +
scale_shape_manual(values = c("Control" = 4, "Experimental" = 16),
breaks = c("Experimental", "Control"))
填充形状与未填充形状的使用使得实验点在视觉上与控制点不同。您可以查看其他形状选项here。
请注意,如果您的分组变量中有许多不同的值(例如沿x轴的5个类别,6种不同的颜色,20个构面组合等),或每个方面内的许多点,则图表看起来会非常繁忙,你可能想分成不同的图而不是把所有东西放在一起。