我试图按年计时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')
非常感谢任何建议
答案 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变量