首先...我对我的英语感到很抱歉。我可能时不时缺少最合适的用语...
无论如何。我想制作一个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一起使用。另外,将值分解也没有用,就像排序一样。
也..我想直接附加到酒吧的数字显示看起来很奇怪。数字隐藏在两个条的交点处。
我该如何解决?
非常感谢您的帮助,我非常希望我的解释有意义。
实际上,当您使用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()