R GGPLOT2时间序列

时间:2018-02-19 16:09:39

标签: r ggplot2

我试图按年计时ggplot2。我的问题是有些专栏有。而不是NA。而且似乎我的变量是因子而不是数字。

数据集

DATE        IR      IQ
9/1/1983    77.6    85.7
10/1/1983   .       .
11/1/1983   .       .
12/1/1983   78      85.4

df_temp <- read.csv("",na.strings = "")

IR.factor <- factor(IR)
IQ.factor <- factor(IQ)
as.numeric(IR.factor)
as.numeric(IQ.factor)

head(df_temp)
str(df_temp)

df_temp <- df_temp[rowSums(is.na(df_temp)) != ncol(df_temp), ]

ggplot(aes(x=date, weight=value, fill=variable), data=df_temp) +
geom_bar() + 
labs(x='DATE', y='Index 2000=100, Not Seasonally Adjusted') +
labs(color='Legend') +
scale_fill_discrete(labels = c('IR.factor',
                             'IQ.factor'
                             )) +
 scale_y_continuous(breaks = round(seq(0, 200, by = 20), 1)) +
 scale_x_date(date_breaks = '5 year', date_minor_breaks = '5 year', 
 date_labels = '%Y') +
 theme(plot.title = element_text(lineheight=.7, face='bold')) +
 theme(legend.position='bottom')

非常感谢任何建议

1 个答案:

答案 0 :(得分:0)

最终代码如下所示:

库(GGPLOT2)

df_temp <- read.csv(".csv",na.strings = c("","."))
    IR <- df_temp$IR[!is.na(df_temp$IR)]
    IQ <- df_temp$IR[!is.na(df_temp$IQ)]
    df_temp$YEAR <- as.Date(df_temp$YEAR)   
    ADJ_DF <- df_temp[df_temp$YEAR>="1998-01-01" & df_temp$YEAR <= "2018-01-
    01",]

ggplot(ADJ_DF, aes(YEAR, group=1, color=Legend))+
    geom_line(aes(y=IR, color="Import Price Index (IR)"))+
    geom_line(aes(y=IQ, color="Export Price Index IQ"))+
        labs(x = "Year", y = "Index 2000=100, Not Seasonally Adjusted", 
        title = "United States Import and Export Price Indexes: All 
        Commodaties (1998-2018)")+
        scale_x_date(date_breaks="2 years",date_labels="%Y")+
        theme(plot.title = element_text(lineheight=.7, face='bold')) +
        theme(legend.position='bottom')

任何其他初学者的注释:

- 要使用group = 1 -dates必须采用as.Date格式,并且应采用YYYY-MM-DD格式 - 只包含适用于ggplot括号中两行的内容 -geom lines然后包含y变量