R:如何在ggplot2 linegraph中抖动geom_line和geom_point? [英] R: How to jitter both geom_line and geom_point in ggplot2 linegraph?
问题描述
我有一个 ggplot2
linegraph,其中两行显示重叠。我试图使用 position_jitterdodge()
,以便它们更清晰可见,但我无法以同样的方式获取线条和点对两个抖动。我试图抖动点和线只水平(因为我不想在y轴上建议任何改变)。这是一个MWE:
##创建数据框
dimension < - factor(c(A, B,C,D))
df < - data.frame(dimension= rep(dimension,2),
value= c(20,21,
Time= c(rep(First,4),rep(Second,4)))
##绘制
ggplot(data = df,aes(x = dimension,y = value,
shape = Time,linetype = Time,group = Time))+
geom_line(position = position_jitterdodge(dodge.width = 0.45))+
geom_point(position = position_jitterdodge(dodge.width = 0.45))+
xlab(Dimension)+ ylab(Value)
其中产生丑陋:
我明显在这里遇到了一些根本性的错误:我该怎么做o使 geom_point
jitter跟随 geom_line
jitter?
另一个仅用于横向的选项是指定 position_dodge
并将其传递给位置$ c
pd < - position_dodge(0.4)
ggplot( data = df,aes(x = dimension,y = value,
shape = Time,linetype = Time,group = Time))+
geom_line(position = pd)+
geom_point(position = pd)+
xlab(Dimension)+ ylab(Value)
I have a ggplot2
linegraph with two lines featuring significant overlap. I'm trying to use position_jitterdodge()
so that they are more visible, but I can't get the lines and points to both jitter in the same way. I'm trying to jitter the points and line horizontally only (as I don't want to suggest any change on the y-axis). Here is an MWE:
## Create data frames
dimension <- factor(c("A", "B", "C", "D"))
df <- data.frame("dimension" = rep(dimension, 2),
"value" = c(20, 21, 34, 32,
20, 21, 36, 29),
"Time" = c(rep("First", 4), rep("Second", 4)))
## Plot it
ggplot(data = df, aes(x = dimension, y = value,
shape = Time, linetype = Time, group = Time)) +
geom_line(position = position_jitterdodge(dodge.width = 0.45)) +
geom_point(position = position_jitterdodge(dodge.width = 0.45)) +
xlab("Dimension") + ylab("Value")
Which produces the ugly:
I've obviously got something fundamentally wrong here: What should I do to make the geom_point
jitter follow the geom_line
jitter?
Another option for horizontal only would be to specify position_dodge
and pass this to the position
argument for each geom.
pd <- position_dodge(0.4)
ggplot(data = df, aes(x = dimension, y = value,
shape = Time, linetype = Time, group = Time)) +
geom_line(position = pd) +
geom_point(position = pd) +
xlab("Dimension") + ylab("Value")
这篇关于R:如何在ggplot2 linegraph中抖动geom_line和geom_point?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!