这似乎是一个非常简单的问题,所以如果我在这里重复一个人,我很抱歉。到目前为止还没有找到答案!
我有一个类似于:
的数据框country <- c("Denmark", "Denmark", "Ireland", "Ireland", "UK", "UK")
year <- c(2007, 2008, 2007, 2008, 2007, 2008)
share <- c(0.5, 0.52, 0.6, 0.72, 0.3, 0.2)
oecd <- data.frame(country, year, share)
(虽然更大)但我有一个用ggplot2制作的图表:
q <- ggplot(data=subset(oecd, year >2003 & year < 2013),
aes(year, share, colour = country)) +
geom_line() +
scale_y_continuous(labels = percent) +
ylab("Share of Total Revenue")
这很好但我希望能够按因子操纵图形(例如,使爱尔兰线更大,更厚,不同的虚线,绿色等)。我试过这个:
alpha <- ggplot(data=subset(oecd, year >2003 & year < 2013), aes(x=year)) +
geom_line(aes(y = share), data = subset(oecd, country == "Ireland"), size = 3) +
geom_line(aes(y = share), data = subset(oecd, country != "Ireland"), size = 1.5)
适用于爱尔兰线,但不适用于其他线。在我的真实数据集中,我有12个因素,所以显然不希望将每个国家分配,有没有更好的方法呢?
答案 0 :(得分:0)
尝试这样的事情。如果您想要更改依赖于country
的线型,颜色和尺寸,那么在调用ggplot
时最简单的方法就是这一点。将自动生成不同的线型,颜色和尺寸。可以使用手动刻度选择特定的线型,尺寸等。
ggplot(data=subset(oecd, year >2003 & year < 2013),
aes(year, share, colour=country, linetype=country, size=country)) +
geom_line() +
scale_y_continuous(labels=percent) +
scale_size_manual(values=c(2,4,2)) +
scale_linetype_manual(values=c(1,2,1)) +
ylab("Share of Total Revenue")
此处指定了尺寸和线型的手动缩放。因子country
具有丹麦,爱尔兰和英国的水平(按此顺序)。所以向量c(2,4,2)
为爱尔兰分配了一条较粗的线。同样,线型的手动刻度线指向丹麦和英国的连续线,以及爱尔兰的虚线(2
)。
希望这会有所帮助。干杯!