2015-08-14 25 views
-1

我知道有关于混合情节类型在相同的数字有强烈的意见,特别是如果有两个y轴涉及。然而,在这种情况下,我没有其他选择 - 我需要使用R来创建一个符合标准格式的图形 - 一个轴上的直方图(案例计数),以及一个叠加的线图显示独立轴上不相关的速率。混合情节与直方图和叠加线图在同一张图

我已经能够做的最好的事情是叠加ggplot2方面,但这不像分析的目的那样容易解释为组合图。审阅此输出的人员将需要它们的格式。

我附上了一个例子。 figure1

有什么想法?下面

对于礼仪的目的,样本数据:

y1<-sample(0:1000,20,rep=TRUE) 
y2<-sample(0:100,20,rep=TRUE) 
x<-1981:2000 
+0

你需要包含一些示例数据 – jeremycg

+1

有点复杂,但看看这双Y轴图:HTTPS: //rpubs.com/kohske/dual_axis_in_ggplot2 – ALKI

+0

谢谢,@Chani。这是一个好的开始。我会尝试用这种方法搞乱。 – micturalgia

回答

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) 
}) 
+0

还没有在剧情的顶部添加箭头 - 如果他们是数据驱动的,你可以用'?箭头'和'?文字' – RichAtMango

+0

包括那些快速和卑鄙的 - 非常感谢您的非常完整的答案。这非常有帮助。很高兴知道是否有可能使用像ggplot2或lattice这样的发烧友软件包,但这将很适合这项法案。 – micturalgia

+0

多个坐标轴在格子或ggplot中不是直接的,但是可行的(根据Chani发布的链接) – RichAtMango

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) 

enter image description here

+0

这是一个我不知道的很好的包 - 非常感谢@Chani。这些都是我正在寻找的。感谢帮助。 – micturalgia