R 使用geom_路径和geom_点时,点与线断开。已修复,但我没有提供摘要函数,默认为'mean_se()
我有以下数据:R 使用geom_路径和geom_点时,点与线断开。已修复,但我没有提供摘要函数,默认为'mean_se(),r,ggplot2,geom,R,Ggplot2,Geom,我有以下数据: structure(list(Expo = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("DC", "DI"),
structure(list(Expo = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), .Label = c("DC", "DI"), class = "factor"), Quail = c(5L,
6L, 16L, 17L, 28L, 29L, 30L, 53L, 54L, 11L, 12L, 46L, 48L, 60L,
11L, 48L, 6L, 5L, 6L, 18L, 29L, 30L, 53L, 11L, 36L, 46L, 47L,
60L, 11L, 4L, 5L, 6L, 16L, 17L, 28L, 29L, 30L, 52L, 53L, 54L),
Segment = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Position = c(1949L,
1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L,
1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L,
1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L,
1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L, 1949L,
1949L, 1949L, 1949L), Freq = c(0.034496, 0.034845, 0.031079,
0.020761, 0.037311, 0.047204, 0.062257, 0.100617, 0.022637,
0.587758, 0.470607, 0.037855, 0.02897, 0.034457, 0.87815,
0.022788, 0.169897, 0.058831, 0.116039, 0.032077, 0.081132,
0.09126, 0.051852, 0.896703, 0.09873, 0.054908, 0.027505,
0.50293, 0.975181, 0.03713, 0.092243, 0.028103, 0.044125,
0.057707, 0.091152, 0.085498, 0.130286, 0.030099, 0.049717,
0.070069), day = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 7L, 7L, 7L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 1L, 1L, 8L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L
)), row.names = c(NA, -40L), class = "data.frame")
当我跑的时候
ggplot(Expo.Shared.PB1, aes(x=as.numeric(day), y=Freq, color = as.character(Quail))) +
geom_path()+
geom_point() +
facet_grid(Expo~.)
它给了我以下(不正确的)情节
我解决了将stat=“summary”添加到两个Geom的问题,但这样做给了我以下信息:
未提供摘要函数,默认为'mean_se()
输出:
现在,这个情节似乎正是我想要的:
stat=“summary”到底在做什么?打印的值是否已从原始值修改?忽略这个信息可以吗?(我肯定不是。)好的。我想我看到了这个问题。[将“正确”的图表与“不正确”的图表进行比较非常有用!:)]
geom_路径
只是“连接点”。它获取数据集中的点,并按它们出现的顺序连接它们。我的第一个想法是,您的数据集没有按预期进行排序。因此,以鹌鹑==11
为例:
Expo.Shared.PB1 %>% filter(Quail == 11)
# A tibble: 4 x 6
Expo Quail Segment Position Freq day
<fct> <int> <int> <int> <dbl> <int>
1 DC 11 2 1949 0.588 3
2 DC 11 2 1949 0.878 7
3 DC 11 2 1949 0.897 5
4 DC 11 2 1949 0.975 8
我认为这就是您想要的,而不需要使用stat=“summary”
那么,为什么stat=“summary”
会给你想要的,尽管有警告?我在猜,但这是我的理论stat=“summary”
显示按x值分组的y值的任意摘要。为此,它必须在逻辑上计算y值子集的汇总统计信息。这样做的明显方法是使用groupby
。现在,问题是在组成组时,group\u by
是否对数据进行排序。我的猜测是,在这种情况下,它确实排序。因此,您可以通过调用stat=“summary”
意外获得所需的订单
PS:要使
Quail
的值以数字顺序而不是字典顺序出现,请使用color=as.factor(Quail)
(并使用scale\u color\u discrete(name=“Quail”)
调整图例标题(如有必要)。我得到的是带有和不带有stat=“summary”
的相同绘图。请发布stat=“summary”
绘图的代码和输出。隔离点是否可能是正确的?查看鹌鹑==47
:只有一个点的值为鹌鹑
。geom_path
如何仅通过一个点画一条线?您好,谢谢您的回答!我更新了帖子。孤立点很好。他们就是他们。但是,当比较第一个图和第二个图时,你会发现在“DC”中带粉红色的顶行中,线的连接方式明显不同。所以第二个情节看起来不错。我的问题是,即使它看起来正确,它是否正确,以及stat=“summary”在那里做了什么。不需要对数据进行排序和使用geom_line()
@Duck,也可以得到相同的结果。的确我曾想过这个问题,但后来忘了把它写在答案里。谢谢。非常感谢你花时间解释。我试过geom_line()但没有成功。
Expo.Shared.PB1 %>% filter(Quail == 11)
# A tibble: 4 x 6
Expo Quail Segment Position Freq day
<fct> <int> <int> <int> <dbl> <int>
1 DC 11 2 1949 0.588 3
2 DC 11 2 1949 0.878 7
3 DC 11 2 1949 0.897 5
4 DC 11 2 1949 0.975 8
Expo.Shared.PB1 %>%
arrange(Quail, day) %>%
ggplot(aes(x=as.numeric(day), y=Freq, color = as.character(Quail))) +
geom_path()+
geom_point() +
facet_grid(Expo~.)