2017-08-28 39 views
1

ggplot2からgeom_countグラフを使用したいが、値の範囲が小さすぎると、凡例のブレークが発生回数の浮動小数点になる。ここで1 1.5 2 2.5 3ggplot2 geom_count凡例が整数に分割される

は、テストケースである:

test = mtcars[1:6,] 

ggplot(test, aes(cyl, carb)) + 
    geom_count(aes(color = ..n.., size = ..n..)) + 
    guides(color = 'legend') 

は、どのように私は休憩が唯一の完全な整数で発生することができますか?

答えて

3

連続したcolorsizeの尺度には、breaksを設定できます。

あなたが休憩のための値のベクトルを与えることができますが、ドキュメントごとにbreaks引数も指定することができます。

入力としての限界を受け取り、出力

としてブレークを返す関数を

例のような単純なケースでは、as.integerまたはroundを関数として使用できます。あなたの例よりも整数の広い範囲のために

ggplot(test, aes(cyl, carb)) + 
    geom_count(aes(color = ..n.., size = ..n..)) + 
    guides(color = 'legend') + 
    scale_color_continuous(breaks = round) + 
    scale_size_continuous(breaks = round) 

、あなたは手動で、例えば、改行を入力しbreaks = 1:3、またはスケールの限界を取り、整数のシーケンスを返す関数を書くことができます。その後、breaksに対してこの機能を使用できます。以下のようになります。

:ベクトルを使用して

set_breaks = function(limits) { 
    seq(limits[1], limits[2], by = 1) 
} 

ggplot(test, aes(cyl, carb)) + 
    geom_count(aes(color = ..n.., size = ..n..)) + 
    guides(color = 'legend') + 
    scale_color_continuous(breaks = set_breaks) + 
    scale_size_continuous(breaks = set_breaks) 
+0

は、おかげで動作しますが、私は 'round'を使用するとき、私は価値を失いますか? test = data.frame(cyl = c(rep(4,3)、rep(2,2)、1)、carb = c(rep(6,3)、rep(2,2) 、5)) 'breaks = roundを使うと1,2,3の代わりに1と3で区切りを返します – voiDnyx

+0

@voiDnyx編集を参照 – aosmith

関連する問題