0

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

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) +
...

我怎么能代替这个?

4

1 回答 1

3

正如我在评论中提到的,

labels=legendlabels['stadtland']

将返回长度为一的列表,而不是您正在寻找的原子向量。相反,您想使用[[

labels=legendlabels[['stadtland']]

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

于 2013-08-29T16:15:57.107 回答