我知道在相同的数字中混合绘图类型有强烈的意见,特别是如果涉及两个y轴。然而,这种情况我别无选择 - 我需要使用遵循标准格式的R创建图形 - 一个轴上的直方图(案例计数),以及显示独立轴上不相关的速率的叠加线图。
我能做的最好的是堆叠的ggplot2方面,但对于本分析的目的而言,这并不像组合图那样容易理解。审核此输出的人将需要它们习惯的格式。
我在下面附上一个例子。
有什么想法吗?
出于礼仪目的,以下示例数据:
y1<-sample(0:1000,20,rep=TRUE)
y2<-sample(0:100,20,rep=TRUE)
x<-1981:2000
答案 0 :(得分:1)
我感到你的痛苦 - 不得不重新创造阴谋。甚至曾经在SAS做过一次
如果它是一次性的话,我很想去上学。像这样的东西:# Generate some data
someData <- data.frame(Year = 1987:2009,
mCases = rpois(23, 3),
pVac = sample(55:80, 23, T))
par(mar = c(5, 5, 5, 5))
with(someData, {
# Generate the barplot
BP <- barplot(mCases, ylim = c(0, 18), names = Year,
yaxt = "n", xlab = "", ylab = "Measles cases in Thousands")
axis(side = 2, at = 2*1:9, las = 1)
box()
# Add the % Vaccinated
par(new = T)
plot(BP, pVac, type = "l", ylim = c(0, 100), axes = F, ylab = "", xlab = "")
axis(side = 4, las = 1)
nudge <- ifelse(pVac > median(pVac), 2, -2)
text(BP, pVac + nudge, pVac)
mtext(side = 4, "% Vaccinated", line = 3)
par(new = F)
})
答案 1 :(得分:1)
尝试library(plotrix)
library(plotrix)
## Create sample data
y2<-sample(0:80,20,rep=TRUE)
x2<-sort(sample(1980:2010,20,rep=F))
y1<-sample(0:18,20,rep=TRUE)
x1<-sort(sample(1980:2010,20,rep=F))
x<-1980:2010
twoord.plot(x1,y1,x2,y2,
lylim=c(0,18),rylim=c(0,100),type=c("bar","l"),
ylab="Measles Cases in thousands",rylab="% Vaccinated",
lytickpos=seq(0,18,by=2),rytickpos=seq(0,100,by=10),ylab.at=9,rylab.at=50,
lcol=3,rcol=4)