ggplot facet_grid data.table 订单错误
ggplot facet_grid data.table order bug
当我尝试将 ggplot 与 data.table 一起使用时,我发现了一个奇怪的行为,这似乎是一个错误。
根据我在 data.table 中设置的行的顺序(使用 setkey(data,V1,V2..)),facet_grids 完全不同。
这是工作的例子 facet_grid:
setkey(dat.rel,FINISH_TIME_BUFFER) #Set Order of Rows according t FINISH_TIME_BUFFER
ggplot(dat.rel)+ #Make Plot
aes(x=dat.rel$INdex,y=dat.rel$GWorkerMissing)+
scale_colour_gradientn(colours=rainbow(10),trans="log",breaks=c(1,100,500,10000))+
geom_point(aes(color=dat.rel$MAX_RUNTIME_IN_SECONDS),size=10,alpha=0.7)+
facet_grid( ~ dat.rel$FINISH_TIME_BUFFER)+
geom_text(aes(label=dat.rel$FINISH_TIME_BUFFER),size=4)
结果是:
如果我现在将第一行替换为
setkey(dat.rel,INdex)
按索引对data.table排序,结果如下:
正如您在 geom_text 的每个点上看到的那样,FINISH_TIME_BUFFER 未正确分配给相应的网格。
ggplot 似乎有 Bug,但为了确定这不是我的错,我在这里试了一下。
只需删除绘图配置中的所有 dat.rel$ 即可使 facet_grids 按预期工作,独立于行顺序。
当我尝试将 ggplot 与 data.table 一起使用时,我发现了一个奇怪的行为,这似乎是一个错误。
根据我在 data.table 中设置的行的顺序(使用 setkey(data,V1,V2..)),facet_grids 完全不同。
这是工作的例子 facet_grid:
setkey(dat.rel,FINISH_TIME_BUFFER) #Set Order of Rows according t FINISH_TIME_BUFFER
ggplot(dat.rel)+ #Make Plot
aes(x=dat.rel$INdex,y=dat.rel$GWorkerMissing)+
scale_colour_gradientn(colours=rainbow(10),trans="log",breaks=c(1,100,500,10000))+
geom_point(aes(color=dat.rel$MAX_RUNTIME_IN_SECONDS),size=10,alpha=0.7)+
facet_grid( ~ dat.rel$FINISH_TIME_BUFFER)+
geom_text(aes(label=dat.rel$FINISH_TIME_BUFFER),size=4)
结果是:
如果我现在将第一行替换为
setkey(dat.rel,INdex)
按索引对data.table排序,结果如下:
正如您在 geom_text 的每个点上看到的那样,FINISH_TIME_BUFFER 未正确分配给相应的网格。
ggplot 似乎有 Bug,但为了确定这不是我的错,我在这里试了一下。
只需删除绘图配置中的所有 dat.rel$ 即可使 facet_grids 按预期工作,独立于行顺序。