[英]Separate geom_linerange by group within a facet in ggplot
Let's say I have the following data:假设我有以下数据:
test = read.table(text = 'condition1 condition2 estimate std_error name
a x .466 .09 name_1
a y .343 .131 name_1
b x .466 .09 name_1
b y .343 .131 name_1
a x .466 .09 name_2
a y .343 .131 name_2
b x .466 .09 name_2
b y .343 .131 name_2', header = T, stringsAsFactors = T)
ggplot(data = test, aes(x = estimate, y = condition1, fill = condition2, group = condition2)) +
geom_point(color = 'black') +
geom_linerange(aes(xmin = estimate - std_error,
xmax = estimate + std_error), color = 'black') +
ylab(NULL) +
facet_grid(name ~ .,
scales = "free_y",
space = "free_y",
switch = 'y')
I'm trying to separate out the x
and y
lines as separate lines within the b
and a
conditions within
a given facet ( name_1
and name_2
).我试图分离出x
和y
线作为内单独的行b
与a
条件within
一个给定的小刻面( name_1
和name_2
)。 But my code as is is putting the two lines as the same y-value, so they're overlapping.但是我的代码原样将这两行作为相同的 y 值,所以它们是重叠的。 What is the best way to separate the lines?分隔线的最佳方法是什么?
Adjust width = X
to taste.根据口味调整width = X
...
geom_point(color = 'black', position = position_dodge(width = 1)) +
geom_linerange(aes(xmin = estimate - std_error,
xmax = estimate + std_error), color = 'black',
position = position_dodge(width = 1)) +
...
Or here with some more aesthetic tweaks:或者在这里进行一些更多的美学调整:
ggplot(data = test, aes(x = estimate, y = condition1, fill = condition2, group = condition2)) +
geom_linerange(aes(xmin = estimate - std_error,
xmax = estimate + std_error), color = 'black',
position = position_dodge(width = 0.5)) +
geom_point(color = 'black', size = 2, shape = 21, position = position_dodge(width = 0.5)) +
ylab(NULL) +
facet_grid(name ~ .,
scales = "free_y",
space = "free_y",
switch = 'y') +
theme(panel.grid.major.y = element_blank())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.