我正在尝试创建一个与下面相似的数字(取自Ro,Russell,& Lavie,2001)。在他们的图表中,他们绘制了反应时间条内误差(即精度)的条形图。基本上,我正在寻找的是一种在酒吧内绘制条形图的方法。
我知道创建这样的图表有几个挑战。首先,Hadley指出无法在ggplot2中创建具有两个尺度的图形,因为这些图形存在根本缺陷(参见Plot with 2 y axes, one y axis on the left, and another y axis on the right)
尽管如此,带有叠加条形图的图形似乎解决了这个双重sclaing问题,我正试图想出一种在R中创建它的方法。任何帮助都会受到赞赏。
答案 0 :(得分:3)
通过使用par(new = T)
添加到现有图表
set.seed(54321) # for reproducibility
data.1 <- sample(1000:2000, 10)
data.2 <- sample(seq(0, 5, 0.1), 10)
# Use xpd = F to avoid plotting the bars below the axis
barplot(data.1, las = 1, col = "black", ylim = c(500, 3000), xpd = F)
par(new = T)
# Plot the new data with a different ylim, but don't plot the axis
barplot(data.2, las = 1, col = "white", ylim = c(0, 30), yaxt = "n")
# Add the axis on the right
axis(4, las = 1)
答案 1 :(得分:1)
在library(ggplot2)
data.1 <- sample(1000:2000, 10)
data.2 <- sample(500:1000, 10)
library(ggplot2)
ggplot(mapping = aes(x, y)) +
geom_bar(data = data.frame(x = 1:10, y = data.1), width = 0.8, stat = 'identity') +
geom_bar(data = data.frame(x = 1:10, y = data.2), width = 0.4, stat = 'identity', fill = 'white') +
theme_classic() + scale_y_continuous(expand = c(0, 0))
中制作小节很容易。这是一些示例代码。虽然没有两个y轴(虽然看起来像here也可以这样做)。
{{1}}