Related question that uses three varibales更容易实现。 这应该看起来很简单,但是我无法使它正常工作。这是一个简单的示例:
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
或barchart
,但希望使用在{ {1}}或删除ggplot2
输出中重复的图例条目。
这是我尝试过的几件事之一:
base
以上内容不适用于library(ggplot2)
ggplot(test_me,aes(B,A,fill=B))+geom_col()
的更改。我如何最好地绘制此图?我试图在position
中用legend.text
设置手动图例,但这删除了“分组”。
编辑:
以下解决方案可能会解决此问题,但与基本等效方法不同,它会导致条形重叠。因此,我希望使用一种使用barplot
并消除图例中多个条目的解决方案。简而言之,如何将只有两个变量和唯一的图例条目的base
分组?
barplot
但是,问题是上述解决方案导致重叠,而基本图导致三个分组的条形(也就是说,这些组似乎不重叠)。
谢谢。
答案 0 :(得分:1)
您需要在x轴上为每个元素赋予一个离散值。试试这个:
test_me %>%
mutate(x = row_number()) %>%
ggplot(aes(x = x, y = A, fill = B)) +
geom_col()