3

ggplot 2 で比例スケールを示す 2 つの凡例をマージするにはどうすればよいですか。 dataframe がありdfます。以下のコードで次のプロット1を取得しました。2 つの凡例をマージして、比例したサイズとクラスを一緒に表示するにはどうすればよいでしょうか。下の図2のような凡例を作りたいです。

dput(df)
structure(list(x = c(58.54, 58.07, 57.9, 56.71, 56.74, 56.11, 
55.22, 55.13, 56.35, 55.43, 55.46, 55.43, 53.93, 54.12, 54.62, 
54.65, 54.81, 54.61, 54.63, 54.48), y = c(-133.7, -130.82, -131.15, 
-132.13, -131.67, -129.48, -129.14, -129.35, -130.69, -127.71, 
-127.85, -126.7, -127.45, -127.42, -126.9, -127.12, -127.2, -127.5, 
-128.43, -128.33), value = c(387.619784071665, 37.1752327050295, 
409.872664195269, 1579.07184277674, 459.494444037465, 15.605721248393, 
779.623269533058, 1.01892098254864, 104.561783471334, 45.1993322681666, 
0.421293689514635, 50.6940007133332, 28.9504788576929, 75.1053594034691, 
134.557578318905, 1.77584069574919, 0.265461776554673, 14.3060733821441, 
903.028086907651, 105.510779979692), value_interval = c("100-500", 
"1-100", "100-500", ">1500", "100-500", "1-100", "500-1000", 
"1-100", "100-500", "1-100", "<1", "1-100", "1-100", "1-100", 
"100-500", "1-100", "<1", "1-100", "500-1000", "100-500")), .Names = c("x", 
"y", "value", "value_interval"), row.names = c(NA, 20L), class = "data.frame")

比例プロットを取得するコード

plott<-ggplot(df)+
        geom_point(aes(x = x, y = y,color=value_interval, size =value), 
                   alpha = 1, shape=16)+
        scale_size_continuous(name="Proportion",range=c(3,10))+
        scale_color_manual(name= " ",limits=c("<1","1-100","100-500","500-1000","1000-1500",">1500"),
            values=c("Red","Blue","darkgoldenrod2","darkgreen","firebrick2","darkorange","deepskyblue"))
plott

プロット1。ここに画像の説明を入力 私が欲しいレジェンドはこんな感じここに画像の説明を入力

4

1 に答える 1

1

凡例に使用する新しいサイズのセットを作成できます。

new_size <- c(3,4,5,8,11,13)

override.aes次に、 inを使用してそれらを追加し、 toguidesを含めることで元のサイズの凡例を非表示にすることができます。guide="none"scale_size_continuous

もちろん、より正確なサイズ値を計算して、それらが比例していることを確認することもできます。

ggplot(df)+
  geom_point(aes(x = x, y = y,color=value_interval, size =value), 
             alpha = 1, shape=16)+
  scale_size_continuous(name="Proportion",range=c(3,13), guide="none")+
  scale_color_manual(name= " ",limits=c("<1","1-100","100-500","500-1000","1000-1500",">1500"),
                     values=c("Red","Blue","darkgoldenrod2","darkgreen","firebrick2","darkorange","deepskyblue")) +
  guides(colour=guide_legend(override.aes=list(size=new_size))) 

ここに画像の説明を入力

于 2016-02-22T10:53:58.280 に答える