我想在y是分位数的点处向Pareto图表添加垂直基线(参见下图)。我用于Pareto图表的函数是" qcc"中的pareto.chart()。包和ggplot2包。我只使用pareto.chart来获得累积的y。我之前也使用pareto.chart()制作了Pareto图表。如果你能用其中任何一个创建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)
答案 0 :(得分:0)
+ geom_vline(xintercept = rev(stats[trunc(cumsum(xyz$Frequency)*.5) == 50, "x"])[1]
答案 1 :(得分:0)
我会使用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
是Pareto图表中与y轴概率相对应的两个类别。我需要使用一些数据来查看我是否能找到一种简单的方法将类别与y轴概率相关联,但是这种方法会绘制出你想要的线条。 (如果您想绘制水平或segments
水平和垂直线segments
的{{1}},也可以使用此方法。)