简体   繁体   English

绘制累积增益曲线图R

[英]Plotting Cumulative Gains Curve Plot R

I am trying to generate a cumulative gain plot using ggplot2 in R. Basically I want to replicate following using ggplot2. 我正在尝试在R中使用ggplot2生成累积增益图。基本上,我想使用ggplot2复制以下内容。

My Data is this 我的数据是这个

df
# A tibble: 10 x 6
Decile  resp Cumresp  Gain Cumlift
<int>  <dbl>   <dbl> <dbl>   <dbl>
1      8301    8301  57.7    5.77
2      2449   10750  74.8    3.74
3      1337   12087  84.0    2.80
4       751   12838  89.3    2.23
5       462   13300  92.5    1.85
6       374   13674  95.1    1.58
7       252   13926  96.8    1.38
8       195   14121  98.2    1.23
9       136   14257  99.1    1.10
10       124   14381 100      1 

## Cumulative Gains Plot
ggplot(df, aes(Decile,  Gain)) +
    geom_point() +
    geom_line() +
    geom_abline(intercept =  52.3 , slope = 4.77)
    scale_y_continuous(breaks = seq(0, 100, by = 20)) +
    scale_x_continuous(breaks = c(1:10)) +
    labs(title = "Cumulative Gains Plot",
     y = "Cumulative Gain %")

However, I am not able to get the diagonal line, even though I tried geom_abline or niether my y-axis is right. 但是,即使我尝试了geom_abline或我的y-axis都正确,也无法获得对角线。 I could not start from 0 to 100 . 我不能从0 to 100开始0 to 100

I would really appreciate if someone can get me the plot as in picture using ggplot2 . 如果有人可以使用ggplot2获得该图,我将不胜感激。

Thanks in advance 提前致谢

library(dplyr); library(ggplot2)

df2 <- df %>%
  add_row(Decile = 0, Gain =0) %>%
  arrange(Decile)

ggplot(df2, aes(Decile,  Gain)) +
  geom_point() +
  geom_line() +
  # This makes another geom_line that only sees the first and last row of the data
  geom_line(data = df2 %>% slice(1, n())) +

  scale_y_continuous(breaks = seq(0, 100, by = 20), limits = c(0,100)) +
  scale_x_continuous(breaks = c(1:10)) +
  labs(title = "Cumulative Gains Plot",
       y = "Cumulative Gain %")

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM