如何将帕累托图表标记为十分位数,只显示10 20等等

时间:2016-06-30 06:06:57

标签: r charts ggplot2

我有一张包含数百万条记录的帕累托图表。对于Y轴,我使用了Pareto.Chart()函数并显示了四分位数。对于x轴,我有数百万条记录,并使用scale_x_continuous()显示十分位数的x点,但我想显示10 20 30 ... 100而不是数字。以下是它是如何以及我想要它的图像enter image description here

我想要的是这样的:enter image description here

我在这里使用了ggplot2和qcc。我使用了pareto.chart()函数来获取累积和,然后在Y中使用它。这是代码部分:

revenue<-custfinal$Revenue
names(revenue)<-custfinal$customerid
cummulative<-abspareto(revenue, ylab = "Revenue", xlab="Customer", xaxt="n")
cummulative<-data.frame(cummulative)

paretorevenue<-ggplot(data=cummulative, 
               aes(x = seq(1,length(cummulative$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=12)) + labs(x="Number of Customer",y="Revenue Share (%)") +ggtitle("Revenue generated distribution for Yogurt 2016") +ylim(0,100.1)+scale_x_continuous(breaks = round(seq(0,length(cummulative$Frequency),length(cummulative$Frequency)/10),-3))    
print(paretorevenue)

abspareto()是我在pareto.chart()中编辑过的东西,所以它只是给了我累积的部分。

1 个答案:

答案 0 :(得分:1)

由于您没有提供示例数据,我使用了ggplot帮助页面中的一些数据。您可以使用scale_x_continuous()函数中的labels参数更改刻度标签。您可以根据需要添加数字c(1, 2, 3)或字符串向量c("a", "b", "c")。比例不变。

df <- data.frame(
  x = 1:5,
  y1 = c(1, 2, 3, 4, NA),
  y2 = c(NA, 2, 3, 4, 5),
  y3 = c(1, 2, NA, 4, 5)
)
p <- ggplot(df, aes(x, y1))  + geom_line()
p + scale_x_continuous(labels=c(10, 20, 30, 40, "a"))

一般情况下,由于这是您关于此主题的至少第五个问题,您可以尝试使用ggplot2geom_line()而不是pareto chart来搜索答案或标记您的问题,因为这是一个不熟悉的特殊术语。我确信使用此搜索字词/标题可以更快地回答您的问题。