我有一个包含两组的条形图,其中 y 轴 = 赚取的美元 & x 轴的宽度 = # 售出单位。下面的示例数据:
test<- structure(list(Person = c("Bob", "Bob", "Bob", "Bob", "Bob",
"Jim", "Jim", "Jim", "Jim", "Jim"), Car = c("Wombat", "Beetle",
"Impala", "Carrera", "Sienna", "Wombat", "Beetle", "Impala",
"Carrera", "Sienna"), tot = c(75090, 229994, 1229347, 247052,
1148873, 41114, 2430, 430423, 629812, 30442), freq = c(5L, 620L,
1324L, 219L, 550L, 36L, 1L, 213L, 195L, 2L)), .Names = c("Person",
"Car", "tot", "freq"), row.names = c(NA, 10L), class = "data.frame")
# Print bar chart.
ggplot()+
geom_bar(data=test,aes(x=reorder(Car,tot,function(x) -sum(x)),
y=as.numeric(tot)/1000,width=freq/1000,fill=Person),
stat='identity',position='identity')
我想对这张图表做以下两件事,但遇到了障碍:
A)对于每个 Car 类别,我希望 Persons 彼此相邻排列,而不是彼此重叠。ggplot 说我不能position = 'dodge'
为不同长度的宽度。
B)似乎Car类别之间的间距是根据宽度最大的条设置的。是否可以使该间距以诸如 的方式变化width * .05
?例如,我想要Sienna
, Carrera
, &之间的空间更窄Beetle
。