Я хотел бы создать подгруппу в ggplot2 (geom_point), что означает, что я хотел бы немного сместить дискретные значения x в соответствии с подгруппой (см. Рисунок).
Я мог бы добиться этого, изменив дискретные значения на непрерывные и добавив значение сдвига, зависящее от подгруппы (см. Рис. B), а затем вручную отрегулировать метки x. Но я подумал, что, вероятно, есть более элегантный способ решения проблем с интервалом и маркировкой. Ниже приведен минимальный пример, который, надеюсь, описывает то, что я имею в виду.
library(ggplot2)
set.seed(1)
df <- data.frame(
ID = rep(seq(1,8),2),
group = rep(LETTERS[1:4],4),
subgroup = c(rep("a",8),rep("b",8)),
value = runif(16)
)
df$xpos <- as.numeric(df$group)+(as.numeric(df$subgroup)/4)
ggplot(data=df, aes(x=group, y= value, color=subgroup))+
geom_point()+
ggtitle("How it is")
ggplot(data=df, aes(x=xpos, y= value, color=subgroup))+
geom_point() +
ggtitle("How I would like it (without adjusted xAxes Labels)")