私は色分けした0から4までの因子型ベクトルにggplotを使って地図を提示しようとしています。ベクトルはspat.dataframe
という名前のデータフレームにあり、ベクトルはqt
です。私がやりたいことは、ベクターに記載されているいずれかをそこアレント場合でも、伝説のオプションのすべてを表示しているためR:未使用のデータレベルをggplotの凡例に追加する方法はありますか?
# plot
ggplot(spat.dataframe, aes(long,lat,group=group)) + # the data
geom_polygon(aes(fill=as.factor(qt))) + # make polygons
scale_fill_manual(values = c("0"="#F0F0F0","1"="green","2"="red","3"="blue","4"="purple"),
labels = c(paste0("white (",length(spat.dataframe[spat.dataframe$qt==0,]),")"),
paste0("green (",length(spat.dataframe[spat.dataframe$qt==1,]),")"),
paste0("red (",length(spat.dataframe[spat.dataframe$qt==2,]),")"),
paste0("blue (",length(spat.dataframe[spat.dataframe$qt==3,]),")"),
paste0("pink (",length(spat.dataframe[spat.dataframe$qt==4,]),")")),
drop=F,
name=NULL) +
theme(line = element_blank(), # remove the background, tickmarks, etc
axis.text = element_blank(),
axis.title = element_blank(),
panel.background = element_blank()) +
ggtitle(title) +
geom_path(colour = "#6b6b6b", size = .5) +
coord_equal()
私の問題は、伝説部分です。したがって、値は青色と紫色で表示されます。試してみるのが少し難しいかもしれませんが、私はそれを私の姿にしたいので、可能な値の数とその値に関連付けられたポリゴンの数を表示することもできます。したがって、私のベクトルqt
の値3と4は、両方ともゼロです(つまり、blue (0)
とpurple (0)
)。
ご意見をいただければ幸いです。ありがとう。
、あなたがのために色を設定することができますそれらの値は、アルファ(16進色の2つの余分な数字)が「00」、すなわち完全に透明な値'ggplot(mtcars、aes(wt、mpg、color = factor(cyl)))+ geom_point()+ scale_color_manual(値はc(' blue '、'#00000000 '、' red ')) 'です。値が存在しない場合、レベルを表示させるために偽のものをハックすることができると思いますが、より良い方法があるかもしれません。 – alistaire
お返事ありがとうございます!私の基本的な目標は、マップ上にあるかどうかにかかわらず、オプションを表示することでした。別のノートでは、最終的には、後で別の問題にあなたの最初の提案を使用しなければならないと思いますので、そのためにありがとうございます。あなたはそれをハックするために何か方法を見つけなければならないというのは正しいことでした。そして、私はザックの答えがまさにそれをしたと思います。再度、感謝します! – JellisHeRo