我正在一个项目中尝试评估公交司机的驾驶效率。我正在使用的数据如下所示:
Driver fvec_arpox_md
1 2561
2 1245
2 2315
2 1264
3 1256
3 1235
1 2145
2 3265
5 2121
9 1256
5 1785
46 1945
2 1261
3 1245
所以我想做一个散点图,仅针对某些特定驱动程序(例如,驱动程序1和2)以及每个具有不同颜色的数据集显示fvec_aprox_md。
我还添加了一个仅在控制台上显示过滤数据的过滤器,但它不会影响散点图。这是我使用的代码:
library(ggplot2)
library(dplyr)
filter(Ruta268, num_conductor==4327)
b<-ggplot(Ruta268, aes(y=Ruta268$fvec_aprox_md, x=seq(1,length(Ruta268$fvec_aprox_md)), group=num_conductor, color=num_conductor))
b + geom_point() +
geom_smooth()
答案 0 :(得分:0)
如果要为每个驱动程序添加颜色代码,则需要在美观colour
中添加aes()
参数。在ggplot2
中,每当您希望函数引用数据中的某些内容时,都需要将其放入aes()
中。当您只想更改整个图或每个geom
层中的参数而与数据无关时,可以在aes()
之后放置一个参数,例如ggplot(data, aes(x,y), colour = 'red')
。>
这就是您的geom_smooth()
也不起作用的原因。 group
的论点也必须具有美学意义,geom_smooth()
才能找到数据并为每个驾驶员拟合一条平滑的线。
b<-ggplot(Ruta268,
aes(y=Ruta268$fvec_aprox_md,
x=seq(1,length(Ruta268$fvec_aprox_md),
color=num_conductor,
group=num_conductor
)
)
b + geom_point() +
geom_smooth()
如果您不熟悉R,我强烈推荐tidyverse
开发人员编写的open book,以使您入门更轻松。
如果只希望在整个数据集中包含一些驱动程序,则应按照@s_t的建议事先过滤它们,并在ggplot()
中而不是Ruta268
中使用它。
filtered.df <- Ruta268 %>%
filter(num_conductor == 4327)