ggplot2中的动态图例标签

时间:2013-08-29 15:52:56

标签: r ggplot2 legend

我定义了一个用于存储图例标签的数据结构,如下所示(因为我想生成一行中包含不同数据和不同标签的多重图)。

legendlabels <- data.frame(
                    'stadtland'=c("Core City\n(Agglomeration)","Municipality\n(Agglomeration)", "Isolated City", "Rural\nMunicipality"),
                    stringsAsFactors=FALSE)

现在,当我在legendlabels中使用ggplot时,

... + 
scale_colour_hue(name="Type",
                     breaks=as.factor(c(1:4)),
                     labels=legendlabels['stadtland'],
                     l=65) +
...

图例仅显示4个不同标签的“1”,“2”,“3”,“4”。但是,当我直接(动态地)插入向量时,字符串会正确显示:

... + 
scale_colour_hue(name="Type",
                     breaks=as.factor(c(1:4)),
                     labels=c("Core City\n(Agglomeration)","Municipality\n(Agglomeration)", "Isolated City", "Rural\nMunicipality"),
                     l=65) +
...

我该如何替换它?

1 个答案:

答案 0 :(得分:3)

正如我在评论中提到的那样,

labels=legendlabels['stadtland']

将返回长度为1的列表,而不是您要查找的原子向量。相反,您想使用[[

labels=legendlabels[['stadtland']]

从列表中返回名为stadtland元素(数据框是列表)legendlabels