nac*_*aco 7 r colors fill ggplot2
我想在X轴上按一个类别组织我的数据,但是按照另一个类别对其进行着色,如下例所示:
图1,没有着色:
require(ggplot2)
nocolor <- ggplot(mtcars, aes(x=as.factor(cyl), y=disp)) +
geom_dotplot(binaxis="y", stackdir = "center")
print(nocolor)
Run Code Online (Sandbox Code Playgroud)
图2,带着色:
nododge <- ggplot(mtcars, aes(x=as.factor(cyl), y=disp, fill=as.factor(gear))) +
geom_dotplot(binaxis="y", stackdir = "center")
print(nododge)
Run Code Online (Sandbox Code Playgroud)
引入着色后发生的一个问题是属于不同组的点不再相互闪避.这会导致我的真实数据出现问题,因为我得到的点恰好具有相同的值并且完全相互模糊.
然后我尝试了这个,但它使我的数据乱码:
图3:
garbled <- ggplot(mtcars, aes(x=as.factor(cyl), y=disp)) +
geom_dotplot(binaxis="y", stackdir = "center", fill=as.factor(mtcars$gear))
print(garbled)
Run Code Online (Sandbox Code Playgroud)
点相互躲闪,但着色只是随机的,并不符合实际数据.
我期望这个问题的答案可以解决我的问题,但着色仍然是随机的:
图4:
graphdata <- mtcars
graphdata$colorname <- as.factor(graphdata$gear)
levels(graphdata$colorname) <- c("red", "blue", "black")
jalapic <- ggplot(graphdata, aes(x=as.factor(cyl), y=disp)) +
geom_dotplot(binaxis="y", stackdir = "center", fill=as.character(graphdata$colorname))
print(jalapic)
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何让图#2中的点相互躲闪,或者如何修复图3或图4中的着色?我真的很感激任何帮助,谢谢.
使用binpositions = "all"和stackgroups = TRUE:
ggplot(mtcars, aes(x=as.factor(cyl), y=disp, fill=as.factor(gear))) +
geom_dotplot(binaxis="y", stackdir = "center", binpositions="all", stackgroups=TRUE)
Run Code Online (Sandbox Code Playgroud)
得到:
可能的替代方案是使用stackdir = "up":
ggplot(mtcars, aes(x=as.factor(cyl), y=disp, fill=as.factor(gear))) +
geom_dotplot(binaxis="y", stackdir = "up", binpositions="all", stackgroups=TRUE)
Run Code Online (Sandbox Code Playgroud)
这使:
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |