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']

探しているアトミック ベクトルではなく、長さ 1 のリストを返します。代わりに、次を使用します[[

labels=legendlabels[['stadtland']]

リストから指定された要素を返しますstadtland(データ フレームはリストです) legendlabels

于 2013-08-29T16:15:57.107 に答える