阅读R

时间:2017-09-17 18:46:33

标签: r plot ggplot2

我想根据多年来的变化来绘制我的数据集。我的代码

df <- read.table(text = 'Year   impact
2017    1
2016    0.065037954
2016    0.102155159
2015    0.030964478
2015    0.100059625
2015    0.089210196
2014    0.034352628
2014    0.080435423
2012    0.054331258
2011    0.052896022
2011    0.087341494
2010    0.025212239
2010    0.0456487
',header=TRUE)

ggplot(data=df, aes(x=Year)) +
  geom_density() +
  ggtitle("Test")+
  xlab("Year")+
  ylab("Probability")

x轴应显示年份(2017 2016 ...),y轴应显示值(最小值0和最大值1)。我的代码中有错误吗?

修改 输出dput(df)如下:

structure(list(Yearimpact = c(20171, 20160.065037954, 20160.102155159, 
20160.030964478, 20160.100059625, 20160.089210196, 20160.034352628, 
20160.080435423, 20160.054331258, 20160.052896022, 20160.087341494, 
20160.025212239, 20160.0456487)), .Names = "Yearimpact", class = "data.frame", row.names = c(NA, 
-13L))

1 个答案:

答案 0 :(得分:3)

使用 data.table 包中的fread()更简单,可以更快地读取大型数据集,并且通常可以减少错误。试试这个:

require(data.table)
require(ggplot2)

df <- fread("Year   impact
             2017    1
             2016    0.065037954
             2016    0.102155159
             2015    0.030964478
             2015    0.100059625
             2015    0.089210196
             2014    0.034352628
             2014    0.080435423
             2012    0.054331258
             2011    0.052896022
             2011    0.087341494
             2010    0.025212239
             2010    0.0456487")

如果由于某种原因需要将此数据表转换为数据框,可以使用:

df <- data.frame(df)

无论哪种方式,您都可以绘制数据图表:

ggplot(data=df, aes(x=Year)) +
  geom_density() +
  ggtitle("Test")+
  xlab("Year")+
  ylab("Probability")

输出:

enter image description here