【发布时间】:2017-01-12 16:16:42
【问题描述】:
我想在 ggplot2 中创建一个散点图,使用下面的数据集在 x 轴上显示男性 test_scores,在 y 轴上显示女性 test_scores。我可以很容易地创建一个 geom_line 图分割男性和女性,并将日期(“dts”)放在 x 轴上。
library(tidyverse)
#create data
dts <- c("2011-01-02","2011-01-02","2011-01-03","2011-01-04","2011-01-05",
"2011-01-02","2011-01-02","2011-01-03","2011-01-04","2011-01-05")
sex <- c("M","F","M","F","M","F","M","F","M","F")
test <- round(runif(10,.5,1),2)
semester <- data.frame("dts" = as.Date(dts), "sex" = sex, "test_scores" =
test)
#show the geom_line plot
ggplot(semester, aes(x = dts, y = test, color = sex)) + geom_line()
似乎只有一个时间序列,ggplot2 处理宽格式数据比长格式数据更好。例如,我可以轻松地创建两列“male_scores”和“female_scores”并将它们相互绘制,但我希望保持数据的整洁和长格式。
干杯,谢谢。
【问题讨论】:
-
经验法则:加宽或加长,直到一列恰好映射到一种美学。
-
你可以用任何你喜欢的方式整理你的主力数据框,只需在绘制特定图形之前创建一个新数据框。