我有如下图.它是使用此命令创建的:
library(ggplot2)
df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)),
rating = c(rnorm(200), rnorm(200, mean=.8)))
ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
Run Code Online (Sandbox Code Playgroud)
现在,接下来我要做的事情就是修改图例标题从COND进入新里程TITLE.
所以我所做的只是添加以下行添加上面代码的结尾:
+labs(colour="NEW LEGEND TITLE")
Run Code Online (Sandbox Code Playgroud)
但它不起作用.什么是正确的方法呢?

背景
在德国,有16个联邦州,其中10个属于西德,其中6个属于东德.在某些方面,例如某些癌症的死亡率,十个前西方国家和六个前东方国家之间存在持续差异.各组内各州之间也存在差异.
为了显示各州之间的差异,从每个州绘制数据,例如按年份划分的年龄标准化乳腺癌死亡率,可以产生一定的意义.16行的情节并不总是一个不错的选择,我不想打开讨论.有时,权力可以说是必须的.
问题
在情节上区分16条线可能很困难.为此,我通常使用RColorBrewer包中的颜色组合(前十种颜色Set3再加上该调色板的前六种颜色,对应于前十个西部和六个前东部状态)和线型(一种线型为东,一个西.)使用该lattice方案,各州1998 - 2010年年龄标准化乳腺癌死亡率的情节可能如下:

这个问题
我想做一个类似的情节使用ggplot,但我还没想出如何组合图例中的颜色和线条类型.到目前为止,我已经走到了这一步:

如果可以在ggplot图例中组合颜色和线条类型,那么如何去做呢?
这是创建数据框和图的代码:
mort3 <- structure(list(State = structure(c(8L, 9L, 11L, 12L, 4L, 2L,
6L, 13L, 3L, 5L, 7L, 10L, 14L, 15L, 1L, 16L, 8L, 9L, 11L, 12L,
4L, 2L, 6L, 13L, 3L, 5L, 7L, 10L, 14L, 15L, 1L, 16L, 8L, 9L,
11L, 12L, 4L, 2L, 6L, 13L, 3L, 5L, 7L, 10L, 14L, 15L, 1L, 16L,
8L, 9L, 11L, 12L, 4L, 2L, 6L, …Run Code Online (Sandbox Code Playgroud) 我正在使用ggplot2创建相当多的facet_wrapped geom_lineplot.
虽然每个地块最多只有八条线,但在一起时,更多的类似于图例上显示的二十个类别.
与此类似: 为13个或更多类别推荐比例颜色, 并且: 在R中,如何在ggplot2的scale_fill_brewer中更改一个值的颜色值?我想使用colorbrewer的高对比度颜色设置人为地增加我可以显示的颜色数量.
一个显而易见的方法似乎是"回收"调色板中的颜色,每次使用不同的线符号.如此明亮的红色与'x'在线上可能是一个不同的类别而不是亮红色与'o'等.
谁能想到我会怎么做?
谢谢!
这是一些(消毒的)数据,以及我用来制作我的情节的R代码.
数据:http://orca.casa.ucl.ac.uk/~rob/Stack%20Overflow%20question/stack%20overflow%20colours%20question%20data.csv
R代码:
csvData <- read.csv("stack overflow colours question data.csv")
p <- ggplot(csvData,
aes(year, percentage_of_output, colour=category, group=category))
p +
geom_line(size=1.2) +
labs(title = "Can I recycle the palette colours?", y = "% of output") +
scale_colour_brewer(palette = "Set1") +
theme(plot.title = element_text(size = rel(1.5))) +
facet_wrap("country_iso3", scales="free_y")
Run Code Online (Sandbox Code Playgroud)