使用三个变量的相关问题更容易做到。这应该看起来很简单,但我无法让它工作。这是一个简单的例子:
test_me<-data.frame(A=c(-1.5,-5.6,-4.6,-7.8,0.98,0.07,-0.32,-0.4,-0.4),
B=c("A","A","A","B","B","B","C","C","C"))
我想ggplot2
完成的那种情节(未显示以保持帖子尽可能简洁)base
:
barplot(test_me$A,col=test_me$B,legend=test_me$B)
这给了我我需要的那种情节。但是,barplot
在图例中返回重复的名称并努力删除这些名称是徒劳的。我可以使用lattice
orbarchart
但更喜欢一种解决方案,该解决方案可以在's 输出中复制此内容ggplot2
或删除重复的图例条目base
。
这是我尝试过的几件事之一:
library(ggplot2)
ggplot(test_me,aes(B,A,fill=B))+geom_col()
以上不适用于对position
. 我怎样才能最好地制作这个情节?我试图用legend.text
in设置手动图例,barplot
但这会删除“分组”。编辑:下面的解决方案可能会解决问题,但与基本等效项不同,它会导致条形重叠。因此,我更喜欢使用base
消除图例中的多个条目的解决方案。简而言之,我怎样才能有一个barplot
只有两个变量和独特的图例条目的分组?
test_me %>%
mutate(x = row_number()) %>%
ggplot(aes(x = x, y = A, fill = B)) +
geom_col()
然而,问题是上述解决方案导致重叠,但基本图导致三个分组条(即这些组似乎不重叠)。
谢谢。
您需要在 x 轴上为每个元素指定一个离散值。试试这个:
test_me %>%
mutate(x = row_number()) %>%
ggplot(aes(x = x, y = A, fill = B)) +
geom_col()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句