裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ジッター(3)

2019年04月30日 | ブログラミング

ggplot の boxplot でデータもプロットすると,jitter が使われて悲惨な結果になる
http://rpubs.com/msonnabaum/ebs_piops
"EBS provisioned IOPS" がその一つの例だろう。

library(ggplot2)
library(reshape)

df.ebs <- read.csv("http://dl.dropbox.com/u/361076/raw_ebs_stats.csv")
df.ebs.melted <- melt(df.ebs, id = c("bricks", "server_type", "instance_id"),
    variable_name = "op", na.rm = TRUE)
df.ebs.melted$test = "ebs"

df.piops <- read.csv("http://dl.dropbox.com/u/361076/raw_piops_stats.csv")
df.piops.melted <- melt(df.piops, id = c("bricks", "server_type", "instance_id"),
    variable_name = "op", na.rm = TRUE)
df.piops.melted$test <- "piops"

df <- rbind(df.ebs.melted, df.piops.melted)

ggplot(df, aes(x = factor(bricks), y = value, colour = test)) + geom_boxplot() +
    geom_jitter(alpha = 0.3) + facet_grid(~op)


悲惨というほかない。グチャグチャだ。

これを,どうやってまともなグラフにするか。


df2 <- split(df, df$op)
x <- c(1,2,3,3,5,4,7,5)
col = c("#88000020", "#00888820")
layout(matrix(1:2, 1))
par(mar=c(2, 2.5, 1, 1), mgp=c(1.6, 0.6, 0))
aa <- lapply(df2, function(d2) {
    df3 <- split(d2, d2$bricks)
    boxplot(value ~ bricks, data=d2, ylim=c(0, 550), boxwex = 0.25, cex=0.5,
            subset=test=="ebs", at=1:5-0.2, col=col[1], main=d2$op[1])
    legend("top", c("ebs", "piops"), pch=19, col=col, bty="n")
    sapply(df3, function(d3) {
        v <- d3$value[d3$test=="ebs"]
        segments(x[d3$bricks]-0.05, v, x[d3$bricks]+0.02, v, col=col[1])
        })
    boxplot(value ~ bricks, data=d2, ylim=c(0, 550), boxwex = 0.25, cex=0.5,
            subset=test=="piops", at=1:5+0.2, col=col[2], main=d2$op[1],
            xaxt="n", add=TRUE)
    sapply(df3, function(d3) {
        v <- d3$value[d3$test=="piops"]
        segments(x[d3$bricks]+0.35, v, x[d3$bricks]+0.42, v, col=col[2])
        })
})
layout(1)

すると,こういうグラフになる。

「キレイなグラフがカンタンに描ける」というとき,「キレイ」というのは,そのプログラム(パッケージ)を作った人の主観。「カンタン」というのも同じ。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ジッター(2) | トップ | Brunner-Munzel 検定 »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事