我想在Pareto图中y是分位数的点处添加一条垂直斜线(见下图)。我在帕累托图中使用的函数是"qcc“包和ggplot2包中的pareto.chart()。我只是使用pareto.chart来获得累积y。我还在前面使用pareto.chart()制作了帕累托图。如果您可以使用这两种方法中的任何一种来创建Pareto,那就没问题了。
我主要关心的是如何在四分位数上绘制垂直线。我可以在x轴的分位数上画垂直线,但不能在y轴的四分位数上画垂直线。
下面是函数:
xyz<-pareto.chart(Product, ylab = "Number of Products", xlab="Customer", xaxt="n")
xyz<-data.frame(xyz)
i2<-ggplot(data=xyz,
aes(x=seq(1,length(xyz$Frequency)),y=Cum.Percent.,group=1)) +
geom_line(colour="red", size=1) +
theme_classic() +
theme(axis.text.x = element_text(angle = 75, hjust = 1, size=8)) +
labs(x="Customer",y="Product Share (%)") +
ggtitle("Pareto Chart") +
ylim(0,100.1)
print(i2)该图显示了它是如何实现的,以及我想要实现的方式。基本上,我想要50%和90%的红线,或者是Y的十分之一或四分位数

发布于 2016-06-23 16:26:17
+ geom_vline(xintercept = rev(stats[trunc(cumsum(xyz$Frequency)*.5) == 50, "x"])[1]发布于 2016-11-11 14:15:27
我会使用segments命令。它独立于其他两个包,因此该方法无论如何都可以工作。
基本前提是确定要绘制的x,y点(或数组)和要绘制的x,y点(或数组)。
例如:
segments(
c(cat1,cat2),0,
c(cat1,cat2),quantile(data, probs = seq(.5, .9)),
col = "red",
lty = "solid"
)其中,cat1和cat2是您在帕累托图中的两个类别,它们对应于y轴概率。我需要处理一些数据,看看是否可以找到一种简单的方法来将类别与y轴概率关联起来,但这种方法会画出您想要的线。(如果您希望绘制水平线或水平线和垂直线的两组segments,则此方法也适用。)
https://stackoverflow.com/questions/37975540
复制相似问题