2017-08-09 11 views
0

私は各xy座標に対して複数のz値を持つバブルチャートを作成しようとしています。私は私の期待される出力のようなものであろうinteraction- geom_pointのサイズは/座標各XYの平均Z値にしたい:私はxとyの値の相互作用によってグループ化しようとしたグループの平均値で表されるR-ggplotバブルチャート

enter image description here

、しかしグループの平均をとるためにggplotを取得することはできません。代わりに、私は、データセット全体の平均か、同じxy位置にある複数の点をプロットしています。それぞれは、z値で設定された独自のサイズを持ちます。 XYの位置とによって

enter image description here

SO-はそれが可能であるグループへ:このプロットを与える

library(ggplot2) 

z <- seq(1,20, length.out = 18) 
xy <- expand.grid(c(1,2,3),c(1,2,3)) 
xyz <- data.frame(xy, z) 
names(xyz) <- c("x", "y", "z") 

ggplot(xyz, aes(x, y, group = interaction(x,y)))+ 
    geom_point(size = z, position = position_jitter(width = 0.2, height = 0)) 

(ジッターとは、複数の点がプロットされて表示):ここで私はかつてのを試してみました方法です各場所の平均値でサイズを設定しますか?もちろん、必要に応じて最初に平均値を見つけることができますが、ggplot自体に方法があるかどうかは疑問です。

私は何かを明確にする必要がある場合は事前におねがいします。

+1

ggplotの最も近い組み込みgpplotは 'stat_bin_2d'になります。これはグループ2dポイントを行いますが、あなたが望むギミックと美学をサポートしていません。データ変換を正面から行い、集計データをggplotに渡してください。 – Gregor

+0

@Gregorフェア十分に、もしそれがそうすることができないなら、それはそれが行く方法です。そして、あなたが正しいです、 'stat_bin_2d'は私が必要とするところに私をあまり行き渡らせません。ありがとう! –

+0

'ggplot'はプロットパッケージです。便宜上、いくつかの基本的な集計を行う能力を持っていますが、 'data.table'や' dplyr'の簡単な行や2行では、データ操作を行うプロットパッケージを得るのに本当のメリットはありません。 – Gregor

答えて

0

ありがとう:

:のようなものを出力

library(ggplot2) 

z <- runif(81, min = 4, max = 10) 
xy <- expand.grid(c(1,2,3),c(1,2,3)) 
xyz <- data.frame(xy, z) 
names(xyz) <- c("x", "y", "z") 

ggplot(xyz, aes(x, y, z = z), col = "black")+ 
    stat_summary_2d(aes(size = ..value..), geom = "point")+ 
    scale_size(range = c(4, 15))+ 
    guides(fill = FALSE) 

enter image description here

alt GregorとNicolasが指摘しているように、これは技術的には私が望むことではありません。これを行うのは正しい方法ではありません。

2

これはあなたをそこに連れて行きます。データをまずピボット/要約してから、集計したdfをggplotします。私のために働いてしまった溶液に私を得たstat_bin_2dに私を指しているため@Gregorへ

ggplot(data = (xyz %>% group_by(x, y) %>% summarise(z.mean = mean(z))), 
     aes(x, y, size = z.mean)) + 
geom_point(position = position_jitter(width = 0.2, height = 0)) 

enter image description here

+0

+1確かにうまくいく解決策ですが、具体的には集計/集計の方法を探すよりも、ggplotグルーピングの仕組みでこれを行うことをお勧めします。答えをありがとう! –

関連する問題