gpt4 book ai didi

r - 如何将ggplot2的geom_dotplot()与填充和组一起使用

转载 作者:行者123 更新时间:2023-12-03 14:19:45 26 4
gpt4 key购买 nike

我非常喜欢ggplot2::geom_dotplot()可以很好地将点堆叠到类别中间的方式,但是我似乎无法将其与填充颜色结合使用。

让我们看一个例子:

# test data
tmpData <- data.frame(x=c(rep('x', 3),rep('y', 3)), y=c(1,1,2,1,2,2), fill=rep(c('A', 'B', 'B'), 2))

# Plot without fill color
ggplot(tmpData, aes(x=x, y=y)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)


产生此图:



但是当我添加fill参数时:

ggplot(tmpData, aes(x=x, y=y, fill=fill)) +   
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)


填充似乎覆盖了对“ x”进行的分组,导致两个点(x,1)(x,1)折叠了,我希望它们具有不同的颜色。



当我尝试指定组时,填充颜色将被忽略:

ggplot(tmpData, aes(x=x, y=y, group=x, fill=fill)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)




启用堆栈组似乎可以避免崩溃:

ggplot(tmpData, aes(x=x, y=y, fill=fill)) +
geom_dotplot(binaxis = "y", stackgroups=TRUE, stackdir = "center", dotsize=4)




但是随后,我将数据的中心丢失到了在其他3个图中找到的“ x”和“ y”。

有没有办法在两个组中同时使用 geom_dotplot()和填充?

最佳答案

如果您愿意接受一些棘手的解决方案,只是想让它看起来像您一样...您可以通过简单地为其提供颜色名称矢量来覆盖fill命令:

tmpData$colorname <- rep(c('red','blue','blue'),2)

ggplot(tmpData, aes(x=x, y=y)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4, fill=tmpData$colorname)


enter image description here

关于r - 如何将ggplot2的geom_dotplot()与填充和组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com