如何使用ggplot
使几个条形图的条形宽度和间距固定,每个图上有不同数量的条形?
下面是一个失败的尝试:
m <- data.frame(x=1:10,y=runif(10))
ggplot(m, aes(x,y)) + geom_bar(stat="identity")
字符串
的数据
ggplot(m[1:3,], aes(x,y)) + geom_bar(stat="identity")
型
将width=1
添加到geom_bar(...)
也没有帮助。我需要第二个情节自动有更少的宽度和相同的酒吧宽度和空间作为第一个。
3条答案
按热度按时间b4lqfgs41#
编辑:
看起来OP只是想要这个:
字符串
我不确定是否可以将绝对宽度传递给
geom_bar
。这是一个丑陋的hack:型
我使用
str
来找到正确的grob和child。如果需要的话,可以使用更复杂的方法来概括这一点。型
的数据
mo49yndu2#
将其他建议 Package 在一个只需要一个图形的函数中。
字符串
niwlg2el3#
我解决了一个类似的问题:
字符串
由于geom_bar()试图根据x轴变量的唯一值数量来调整条形宽度,log()会随着x的唯一值数量的增加而快速增加,从而将累积的geom_bar()+自定义宽度“展平”为一个常数值,从而“撤消”此操作。
1 +是用来处理log(1)=0的。
您可以根据需要调整mywidth的值。