R 我需要在帕累托图中添加一条垂直线()。我使用ggplot2绘制帕累托图

R 我需要在帕累托图中添加一条垂直线()。我使用ggplot2绘制帕累托图,r,charts,pareto-chart,R,Charts,Pareto Chart,我想在帕累托图中y为分位数的点上添加一条垂直线(见下图)。我用于Pareto图表的函数是“qcc”包和ggplot2包中的Pareto.chart()。我只使用pareto.chart来获得累计y。我之前也使用Pareto.chart()制作了Pareto图表。如果你能用这两种方法中的任何一种来创建帕累托,那就没问题了 我主要关心的是如何在四分位数处画垂直线。我能在x轴的十分位画垂直线,但不能在y轴的四分位画垂直线 以下是函数: xyz<-pareto.chart(Product, yla

我想在帕累托图中y为分位数的点上添加一条垂直线(见下图)。我用于Pareto图表的函数是“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)

xyz我将使用
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轴概率关联起来,但是这种方法会画出你想要的线。(如果你想画水平的
段或水平线和垂直线的两组
段,这个方法也可以。)

它创建了一条x=0.5的垂直线,但是我想要一条y=50%的线。谢谢mate.WB,但它仍然在同一位置绘制。我不知道如何尝试geom_hline()。我尝试了在x轴下方绘制的hline y intercept,也尝试了在x轴下方绘制的hline x intercept。我的感觉是,因为我必须以50%的速度绘制,无论该点在图中的哪个位置,x截距都将是常数。但对于这一点,如何找到x在y得到50%的值时的截距。反函数会非常乏味。我无法运行它,但我想我们得到的是y值,我已经知道了。我想得到y=50%的x值
segments(
         c(cat1,cat2),0,
         c(cat1,cat2),quantile(data, probs = seq(.5, .9)), 
         col = "red", 
         lty = "solid"
         )