У меня есть линейный график, подобный этому:
df <- data.frame(x = c(1,1,2,2,1,1,2,2),
y = c(1.5,1.9,2.1,1.6,1.4,1.8,2.0,1.7),
error = c(0.2),
group = c("g1","g2","g1","g2","g3","g4","g3","g4"))
ggplot(df, aes(x = x, y = y, color = group, linetype = group)) +
geom_point() + geom_line() +
geom_errorbar(aes(ymin = y - error, ymax = y + error),
linetype = 1, width = 0.5,
position = position_dodge(width = 0.2)) +
scale_color_manual(values = c("g1"="Black", "g2"="Grey", "g3"="Black", "g4"="Grey")) +
scale_linetype_manual(values=c("g1"=1,"g2"=1,"g3"=2,"g4"=2))
Мне нужно сделать его черно-белым, поэтому с несколькими группами я использовал как color
, так и linetype
. Когда я меняю тип линии, я хочу, чтобы полосы погрешностей были сплошными, хотя линии были пунктирными, поэтому я переопределяю тип линии для полос погрешностей. По какой-то причине это также меняет легенду, поэтому уже не ясно, какая строка какая.
Я знаю, что это каким-то образом зависит от color = group
в aes
, потому что, когда у меня был только тип линии, легенда была в порядке. По какой-то причине я просто не могу найти способ сделать линии, цвета и сплошные погрешности одновременно. Кто-нибудь знает, почему это так?