在R中绘制随时间变化的销售图
我试图在一个散点图上显示每年的前100名销售额。我使用下面的代码根据销售额选取前100名游戏,然后将其设置为数据框在R中绘制随时间变化的销售图,r,ggplot2,plot,scatter-plot,gplots,R,Ggplot2,Plot,Scatter Plot,Gplots,我试图在一个散点图上显示每年的前100名销售额。我使用下面的代码根据销售额选取前100名游戏,然后将其设置为数据框 top100 <- head(sort(games$NA_Sales,decreasing=TRUE), n = 100) as.data.frame(top100) 我打赌使用top100子集时会出现以下错误 错误:数据必须是数据帧或可由fortify()强制的其他对象,而不是数字向量 如果我使用实际的游戏数据,我会把情节附在上面 有什么想法吗 正如@CMichael在评
top100 <- head(sort(games$NA_Sales,decreasing=TRUE), n = 100)
as.data.frame(top100)
我打赌使用top100子集时会出现以下错误
错误:数据
必须是数据帧或可由fortify()
强制的其他对象,而不是数字向量
如果我使用实际的游戏数据,我会把情节附在上面
有什么想法吗
正如@CMichael在评论中指出的,您的代码中有几个问题。 由于缺乏可复制的示例,我使用
iris
dataset来解释代码的错误
前100个头(排序(虹膜$Sepal.Length,递减=真),n=20)
[1] 7.9 7.7 7.7 7.7 7.7 7.6 7.4 7.3 7.2 7.2 7.2 7.1 7.0 6.9 6.9 6.9 6.9 6.8 6.8 6.8
因此,首先,您不再需要在ggplot2
中绘制二维。其次,即使是colnames
在提取过程中也不会保留,因此您不能在请求ggplot2
后绘制Year
和Global\u Sales
因此,要解决您的问题,您可以这样做(这里是iris
dataset的示例):
top100=as.data.frame(头部(虹膜[顺序(虹膜$Sepal.Length,递减=TRUE),1:2],n=100))
您将获得这种类型的data.frame:
str(前100名)
“数据帧”:100 obs。共有2个变量:
$萼片。长度:num 7.9 7.7.7.7.6 7.4 7.3 7.2 7.2。。。
$萼片。宽度:num 3.8 3.8 2.6 2.8 3 2.8 2.9 3.6 3.2。。。
>头(前100名)
萼片长萼片宽
132 7.9 3.8
118 7.7 3.8
119 7.7 2.6
123 7.7 2.8
136 7.7 3.0
106 7.6 3.0
然后,如果正在打印:
库(ggplot2)
ggplot(top100,aes(x=萼片长度,y=萼片宽度))+geom_点()
警告根据您在示例中提供的内容,我建议您:
top100as.data.frame(top100)
不起作用-您需要执行top100=as.data.frame(top100)
谢谢,我在那之后得到:错误:美学必须是长度1或与数据(100):x相同,y….这是因为年份栏中的NA吗?您能否使用dput
共享数据样本来重现您的问题?在ggplot
中,如果出现geom_point
,丢失的数据将向您发出警告并删除数据行。
ggplot(top100)+
aes(x=Year, y = Global_Sales) +
geom_point()