无法使用 R 中的数据框 plotly 绘制时间序列图。不断收到错误“$ operator is invalid for atomic vectors”。

Unable to plot a timeseries graph using plotly with a dataframe in R. Continuously getting the error "$ operator is invalid for atomic vectors."

我有一个数据框 df,其两列中包含以下值:

Year Temperature
1750 8.719364
1751 7.976143
1752 5.779833
1753 8.388083
1754 8.469333
1755 8.355583
1756 8.849583
1757 9.022000
1758 6.743583
1759 7.985083
1760 7.185167

依此类推大约 200 年及其相应的温度。

我正在尝试使用 plotly 绘制时间序列图。

library(plotly)
g <- plot_ly(x=~df$Year, y=~df$Temperature, add_trace("scatter"), mode='lines')

它给了我

Error: $ operator is invalid for atomic vectors.

所以,我尝试将列分配到单独的向量中,以避免使用 $:

x <- avg.temp$Year
y <- avg.temp$Avg.Temp
g <- plot_ly(x=~x, y=~y, add_trace("scatter"), mode='lines')

但我仍然得到同样的错误。

我是 R 的新手。我只是想创建一个包含年份和温度数据的简单时间序列图。但是我无法弄清楚我的代码到底出了什么问题。有人可以帮我解决这个错误吗?

另外,add_trace("scatter")参数是什么?它有什么作用?我使用它是因为我之前在相同数据上创建了一个图表,但它不是一条线。它太厚了,它给了我一个警告,告诉我 scatter 跟踪在这里是合适的(或类似的东西..)

如果有人能帮我解决这个问题就太好了。非常感谢,伙计们。

此代码创建您的图表没有错误:

g <- plot_ly(df, x = ~Year) %>%
  add_trace(type="scatter", y=~Temperature, name="Trace Temperature", mode="lines")

您在调用 plotly 之后调用 add_trace 以避免错误。

另一种更接近您当前所用的写法是:

g <- plot_ly(x=~df$Year, y=~df$Temperature, mode="lines")
add_trace(g, type="scatter")

很遗憾,我无法解释什么是跟踪。希望对您有所帮助!