调整小节的比例并将类型的数据合并到单个条中

问题描述 投票:0回答:1

首先...我对我的英语感到很抱歉。我可能时不时缺少最合适的用语...

无论如何。我想制作一个Barplot,在彼此下方显示多个条(因此将Barplot翻转到侧面)。

我拥有的数据可能看起来像这样:

t1 = c('name1','name1','name2','name2')
t2 = c(5,0,2,1)
t3 = c('a','b','a','b')
test = data.frame(cbind(t1, t2, t3))

在t1中,我们有名称,

在t2中,我们有值,

在t3中,我们具有类型。有点像超集。它属于类型a或类型b。

理想情况下,我想在相同的行/栏中或在直接相邻的栏中显示具有相同名称(t1)但不同类型(t3)的数据对象。 (这似乎有效)

此外,两种类型之间的色差也有效。

ggplot(test, aes(x = t1, y = t2, fill = t3)) +
    geom_bar(stat = 'identity', position = position_dodge()) +
    geom_text(aes(label=t2), color = 'white') + 
    scale_fill_brewer(palette = 'Paired') + 
    theme_minimal() +
    coord_flip()

现在我的问题/问题:

不幸的是,该小节的比例无效。在x轴上,您看到的值0、1、2、5相互之间具有相等的距离。但是,显然5与2的距离比1与2的距离更远。

如何解决缩放问题?到目前为止,它尚未与设置xmin或xlim(,)或与y一起使用。另外,将值分解也没有用,就像排序一样。

也..我想直接附加到酒吧的数字显示看起来很奇怪。数字隐藏在两个条的交点处。

我该如何解决?

非常感谢您的帮助,我非常希望我的解释有意义。

r ggplot2 bar-chart
1个回答
0
投票

实际上,当您使用cbind时,t2成为重要因素。您可以使用cbind.data.frame函数,例如

test = cbind.data.frame(t1, t2, t3)
str(test)

ggplot(test, aes(x = t1, y = t2, fill = t3)) +
  geom_col(position = position_dodge()) +
  geom_text(aes(label=t2), color = 'white') + 
  scale_fill_brewer(palette = 'Paired') + 
  theme_minimal() +
  coord_flip()
© www.soinside.com 2019 - 2024. All rights reserved.