【问题标题】:How to to print a plot based on function arguments in R?如何根据 R 中的函数参数打印绘图?
【发布时间】:2020-01-02 04:46:46
【问题描述】:

我正在尝试构建一个储蓄计算器。最终,我想创建一个 RShiny 应用程序,但在此之前,我想确保代码是完美的。做我想做的事,我要用到三个chunk,分别是:

ks <- function (x) { number_format(accuracy = 1,
                                   scale = 1/1000,
                                   big.mark = ",")(x) }
savings <- function(years,apr,initial,investment) {
   value <- numeric(years + 1)
   value[1] <- initial
   for (i in 1:years) value[i + 1] <- (value[i] + investment) * apr
   data.frame(year = 0:years, value)
}
savings(45.02,1.07,45000,15000)
ggplot(data=savings(45,1.07,45000,15000),aes(x=year,y=value))+geom_line()+ scale_x_continuous(breaks = seq(0, 100, by = 5)) +
  scale_y_continuous(labels = ks, breaks = seq(0, 400000000, by = 250000))+labs(x="Year",y="Value (thousands)")

我想生成 ggplot 作为“储蓄”功能的一部分,但我不知道如何集成它。

【问题讨论】:

    标签: r function ggplot2


    【解决方案1】:

    您可以将数据框保存在一个对象中并在ggplot中使用它

    library(ggplot2)
    
    savings <- function(years,apr,initial,investment) {
       value <- numeric(years + 1)
       value[1] <- initial
       for (i in 1:years) value[i + 1] <- (value[i] + investment) * apr
       df <- data.frame(year = 0:years, value)
    
       ggplot(data=df,aes(x=year,y=value))+ geom_line() + 
        scale_x_continuous(breaks = seq(0, 100, by = 5)) +
        scale_y_continuous(labels = ks, breaks = seq(0, 400000000, by = 250000)) + 
        labs(x="Year",y="Value (thousands)")
    }
    
    savings(45.02,1.07,45000,15000)
    

    【讨论】:

      猜你喜欢
      • 2016-02-26
      • 2018-06-04
      • 2016-06-27
      • 2020-12-01
      • 2012-07-11
      • 2014-12-06
      • 2013-06-20
      • 2020-07-05
      • 1970-01-01
      相关资源
      最近更新 更多