在R with ggplot中,我想创建一个由第三个变量分组的意大利面条图(2个定量变量)来指定线条颜色。其次,我想将该分组变量与行类型或宽度聚合在一起。
以下是使用空气质量数据集的示例。我希望线条的颜色代表月份,而夏季月份的线宽与非夏季不同。
首先,我为聚合组创建了一个指标变量:
airquality$Summer <- with(airquality, ifelse(Month >= 6 & Month < 9, 1, 0))
然而,这失败了:
library(ggplot2)
ggplot(data = airquality, aes(x=Wind, y = Temp, color = as.factor(Month), group = Summer)) +
geom_point() +
geom_line(linetype = as.factor(Summer))
这也失败了(指定airquality$Summer
):
ggplot(data = airquality, aes(x=Wind, y = Temp,
color = as.factor(Month), group = airquality$Summer)) +
geom_point() +
geom_line(linetype = as.factor(airquality$Summer))
我尝试了this solution,但又收到了另一个错误:
lty <- setNames(c(0, 1), levels(airquality$Summer))
ggplot(data = airquality, aes(x=Wind, y = Temp,
color = as.factor(Month), group = airquality$Summer)) +
geom_point() +
geom_line(linetype = as.factor(airquality$Summer)) +
scale_linetype_manual(values = lty)
有什么想法吗?
修改
我的实际数据显示非常明显的趋势,我想区分下面的所有其他顶线。我的目标是说服人们他们应该赚取的不仅仅是学生贷款的最低金额:
答案 0 :(得分:1)
您只需将论坛更改为Month
并将linetype
放入aes
:
ggplot(data = airquality, aes(x=Wind, y = Temp, color = as.factor(Month), group = Month)) +
geom_point() +
geom_line(aes(linetype = factor(Summer)))
如果要指定linetype
,可以使用几种方法。这是一种方式:
lineT <- c("solid", "dotdash")
names(lineT) <- c("1","0")
ggplot(data = airquality, aes(x=Wind, y = Temp, color = as.factor(Month))) +
geom_point() +
geom_line(aes(linetype = factor(Summer))) +
scale_linetype_manual(values = lineT)