2017-03-17 212 views
1

enter image description here添加百分线散点图

我已经创建了一个散点图所示在图像中。我尝试添加百分比线,从而得到您在图像中看到的三条水平线。这三条线看起来是百分比的所有数据。

相反,我想按组进行百分位数。因此,第75百分位线将从x轴上的值2的顶部开始,它将连接到x轴上的值4的第75个百分点,依此类推。

什么,我想创建示例如下:

enter image description here

这是我目前使用的代码:

plot(LS10StDev$Number.of.Managers.in.Portfolio, 
    LS10StDev$X10.Year.Standard.Deviation, 
    xlab ="Number of Managers in Portfolio", 
    ylab = "10 Year Annualized Standard Deviation", 
    main = "Long/Short Managers - 10 Year Standard Deviation", 
    pch = 20, col='dark green') 

abline(h=quantile(LS10StDev$X10.Year.Standard.Deviation,c(0.25,0.5,0.75))) 
+1

你需要计算百分位值和使用'lines',如'abline'仅绘制直线。 – alistaire

+0

如果您提供了您正在绘制的数据,这将有所帮助。可能你做这件事的最好方法是'dput(LS10StDev)',然后将结果粘贴到你的问题中。 – G5W

+0

谢谢alistaire Line的语法是什么?我应该用Excel中的原始数据进行计算,并在RStudio中调用它或在R中计算它? –

回答

2

我产生了一些假的数据来说明。

## Generate some data to approximate your picture 
set.seed(42) 
X10.Year.Standard.Deviation = c(rnorm(20,9.5,1), rnorm(20,8.2,0.8), 
    rnorm(15,8.4,0.6), rnorm(10, 8.2, 0.4), rnorm(2,8.0, 0.1)) 
Number.of.Managers.in.Portfolio = rep(seq(2,10,2), c(20,20,15,10,2)) 
LS10StDev = data.frame(Number.of.Managers.in.Portfolio, 
    X10.Year.Standard.Deviation) 

## Plot points 
plot(LS10StDev, ylim=c(0,15), pch = 20, col='dark green') 

## calculate quantiles and plot lines 
Q25 = aggregate(LS10StDev$X10.Year.Standard.Deviation, 
     list(Number.of.Managers.in.Portfolio), quantile, 0.25) 
Q50 = aggregate(LS10StDev$X10.Year.Standard.Deviation, 
     list(Number.of.Managers.in.Portfolio), quantile, 0.50) 
Q75 = aggregate(LS10StDev$X10.Year.Standard.Deviation, 
     list(Number.of.Managers.in.Portfolio), quantile, 0.75) 
lines(Q25, col="red") 
lines(Q50, col="green") 
lines(Q75, col="blue") 

Points and Lines