具有两个变量的类龙卷风图

时间:2019-05-10 17:04:37

标签: r ggplot2

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"))

我想用ggplot2base做的那种情节(为了使帖子尽可能简洁,未显示):

barplot(test_me$A,col=test_me$B,legend=test_me$B)

这给了我所需的情节。但是,barplot在图例中返回重复的名称,并且删除这些名称是徒劳的。我可以使用latticebarchart,但希望使用在{ {1}}或删除ggplot2输出中重复的图例条目。

这是我尝试过的几件事之一:

base

以上内容不适用于library(ggplot2) ggplot(test_me,aes(B,A,fill=B))+geom_col() 的更改。我如何最好地绘制此图?我试图在position中用legend.text设置手动图例,但这删除了“分组”。 编辑: 以下解决方案可能会解决此问题,但与基本等效方法不同,它会导致条形重叠。因此,我希望使用一种使用barplot并消除图例中多个条目的解决方案。简而言之,如何将只有两个变量和唯一的图例条目的base分组?

barplot
  

但是,问题是上述解决方案导致重叠,而基本图导致三个分组的条形(也就是说,这些组似乎不重叠)。

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要在x轴上为每个元素赋予一个离散值。试试这个:

test_me %>% 
  mutate(x = row_number()) %>% 
  ggplot(aes(x = x, y = A, fill = B)) +
  geom_col()