我尝试使用ggplot2创建外观专业的图形,但是我在很多事情上遇到了麻烦。我想为数据点添加颜色,在x轴上添加日期,并创建一条最合适的线或类似的线(如果可能)。我一直在Stack Exchange和Google上进行搜索,以尝试解决此问题,但无济于事。我使用的是圣路易斯联邦储备银行(FRED)的“平民劳动力参与率:20岁及以上,黑人或非裔美国人”。
我正在使用RStudio,我从LNS11300031导入了数据,然后使用read.csv()
函数将其读入RStudio
。最初,我使用plot()
函数来绘制数据,但是我想使用ggplot()
函数来创建外观更好的图形,但是当我创建图形时,数据点看起来非常不透明,模糊并且多云,并且x轴上没有标签。我想添加颜色和最适合的线条,但是我不知道该怎么做。
这是我用来创建没有x轴标签的图形的代码:
ggplot(data = labor, mapping = aes(x = labor$DATE, y = labor$LNS11300031)) + geom_point(alpha = 0.1)
这是我的代码生成的图形:
以下是一些示例数据(labor是我用来存储FRED站点中数据的变量):
head(labor) DATE LNS11300031
1 1972-01-01 77.6
2 1972-02-01 78.3
3 1972-03-01 78.7
4 1972-04-01 78.6
5 1972-05-01 78.7
6 1972-06-01 79.4
我想将变量名LNS11300031
更改为“劳动力参与率”
有关数据的其他信息:
str(labor)
'data.frame': 566 obs. of 2 variables:
$ DATE : Factor w/ 566 levels "1972-01-01","1972-02-01",..: 1 2 3 4 5 6 7 8 9 10 ...
$ LNS11300031: num 77.6 78.3 78.7 78.6 78.7 79.4 78.8 78.7 78.6 78.1 ...
我希望代码用颜色和趋势线创建更清晰的数据点,并能够使x轴带有相应的日期。
答案 0 :(得分:2)
这是涵盖所有3种所需改进的基本尝试:
alpha = 0.1
会使它们太模糊。stat_smooth()
添加。我使用了method='lm'
,它给出了一条线性回归直线,但还有其他更灵活的选择。DATE
列正确设置为Date
类型,并使用scale_x_date()
来调整标签。quantmod::getSymbols("LNS11300031", src="FRED")
# Your data is available from the quantmod package
labor = LNS11300031 %>%
as.data.frame() %>%
rownames_to_column(var = "DATE") %>%
# Make sure DATE is a Date column
mutate(DATE = as.Date(DATE))
# Generally, you don't use data$column syntax within ggplot,
# just give the column name
ggplot(data = labor, mapping = aes(x = DATE, y = LNS11300031)) +
geom_point(alpha = 0.7, colour = "#B07AA1") +
stat_smooth(method = "lm", colour = "#E15759", se = FALSE) +
scale_x_date(date_breaks = "5 years", date_labels = "%Y") +
theme_minimal()
输出: