【问题标题】:How do I plot asset stock prices in R?如何在 R 中绘制资产股票价格?
【发布时间】:2020-07-06 16:25:42
【问题描述】:

我正在尝试在 R 中绘制资产股票价格。我正在从 Yahoo Finance 下载 csv 格式的数据,然后将其导入到 R 中,以便对其进行一些统计测试并绘制一些图。

我目前正在尝试绘制收盘价与日期的关系,但没有取得很大成功。 R 只是将其绘制为一系列不同的点,并且不会将这些点与线连接起来,尽管我尝试使用参数 type = "l"。

price <- read.csv("~/Downloads/AAPL.csv")
plot(price$Date,price$Close,type="l")

我只是从这里获取数据:https://finance.yahoo.com/quote/AAPL/history?p=AAPL

无论我尝试什么样的额外参数,我每次都会得到这样的输出。

例如,我试着把它变成红色,根本没有改变。

谢谢!

【问题讨论】:

    标签: r finance


    【解决方案1】:

    问题在于 pric$Date 是一个因素(分类变量)而不是一个数字。您可以使用 as.POSIXlt 将日期字符串转换为 Posix 时间戳,然后从中计算浮点表示,例如年 + yday/366.

    【讨论】:

      【解决方案2】:

      试试这个

      price$Date = as.Date(price$Date)
      plot(price$Date,price$AAPL.Close,type="l",col=4)
      

      或更好

      library(quantmod)
      
      fro = '2014-07-31'
      Apple = getSymbols('AAPL',auto.assign = F,from=fro)
      chartSeries(Apple,subset = "last 3 years")
      

      【讨论】:

        【解决方案3】:

        除非您想创建烛台图,否则您不需要使用包。

        df <- read.csv("AAPL.csv")
        
         > str(df)                      
         'data.frame':   254 obs. of  7 variables:
          $ Date     : Factor w/ 254 levels "2019-07-10","2019-07-11",..: 1 2 3 4 5 6 7 8 9 10 ...
          $ Open     : num  202 203 202 204 205 ...
          $ High     : num  204 204 204 206 206 ...
          $ Low      : num  202 202 202 204 204 ...
          $ Close    : num  203 202 203 205 204 ...
          $ Adj.Close: num  201 199 201 203 202 ...
          $ Volume   : int  17897100 20191800 17595200 16947400 16866800 14107500 18582200 20929300 22277900 18355200 ...
        
        df$Date <- as.Date(df$Date)  # Otherwise it is treated as a factor variable
        
         > str(df)                   
         'data.frame':   254 obs. of  7 variables:
          $ Date     : Date, format: "2019-07-10" "2019-07-11" "2019-07-12" "2019-07-15" ...
          $ Open     : num  202 203 202 204 205 ...                                               
          $ High     : num  204 204 204 206 206 ...
          $ Low      : num  202 202 202 204 204 ...
          $ Close    : num  203 202 203 205 204 ...
          $ Adj.Close: num  201 199 201 203 202 ...
          $ Volume   : int  17897100 20191800 17595200 16947400 16866800 14107500 18582200 20929300 22277900 18355200 ...
        
        plot(y=df$Close, x=df$Date, col="red", type = "l")  # look at ?plot for more details
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-31
          • 2020-10-03
          • 1970-01-01
          • 2020-08-09
          • 2020-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多