Quantcast
Channel: グラフ - 廿TT
Viewing all articles
Browse latest Browse all 123

ggplot2でヒストグラムを箱ひげ図風に並べてプロットするパッケージggbrickを書いた

$
0
0

github.com

ggtetrisって名前にしようかと思ったんだけど、もうある(GitHub - EmilHvitfeldt/ggtetris: Create Tetris Chart Visualizations in R)みたいなので、ggbrickにしました。

brickはレンガっていう意味らしいです。

マニュアルはまだ一文字も書いてません。

インストールは

devtools::install_github("abikoushi/ggbrick")

で多分いけます。

入ってる関数は基本的にはgeom_brickだけです。

気が向いたら触ってみて変なところを教えていただけると嬉しいです。

(マニュアルも要望があれば書きます。)

以下デモです。

基本的な使い方はこう。

library(ggplot2)library(ggbrick)
ggplot(data = iris)+
  geom_brick(aes(y = Sepal.Length, x=Species), binwidth =0.1)

f:id:abrahamcow:20190325205328p:plain

引数binwidthまたはbinsでビンの幅を変えられます。

ggplot(data = iris)+
  geom_brick(aes(y = Sepal.Length, x=Species), binwidth =0.5)

f:id:abrahamcow:20190325205431p:plain

塗りつぶし。

ggplot(data = iris)+
  geom_brick(aes(y = Sepal.Length, x=Species), binwidth =0.5, fill ="black")

f:id:abrahamcow:20190325205501p:plain

色を変えてサブカテゴリを積み上げることができます。

ggplot(data = mpg,aes(y = cty, x=factor(year), fill=factor(cyl)))+
  geom_brick(binwidth =1)

f:id:abrahamcow:20190325205552p:plain

引数stackgroupsをFALSEにすると積み上げません。

ggplot(data = mpg,aes(y = cty, x=factor(year), fill=factor(cyl)))+
  geom_brick(binwidth =1, stackgroups =FALSE, alpha =0.5)

f:id:abrahamcow:20190325205637p:plain

でも見づらいのであんまり使わないかも。

stackdirを"centerwhole"にするとバイオリンプロットライクに左右にブロックを積みます。

ggplot(data = mpg,aes(y = cty, x=factor(year), fill=factor(cyl)))+
  geom_brick(binwidth =1, stackgroups =FALSE, alpha =0.5,
            stackdir ="centerwhole", position = position_dodge(0.5))

f:id:abrahamcow:20190325205748p:plain

横向きにしたいときはcoord_flipで。

ggplot(data = diamonds, aes(x = color, y=carat, colour=cut))+
  geom_brick(binwidth=0.2)+
  coord_flip()

f:id:abrahamcow:20190325205839p:plain

stat_summaryと合わせてメディアンを表示。

ggplot(data = iris,aes(y = Sepal.Length, x=Species))+
  geom_brick(binwidth =0.1, stackdir ="centerwhole")+
  stat_summary(fun.y = median, fun.ymin = median, fun.ymax = median,
               geom ="crossbar")

f:id:abrahamcow:20190325205942p:plain

当たり前かもしれませんがfacetもできます。

iris2 <- tidyr::gather(iris,key,value,-Species)
ggplot(data = iris2,aes(y = value, x=Species))+
  geom_brick(binwidth =0.3,fill="black")+
  facet_wrap(~key,scales ="free_y")

f:id:abrahamcow:20190325210030p:plain

以上です。


Viewing all articles
Browse latest Browse all 123

Trending Articles