裏 RjpWiki

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

ggplot を「けなしまくる」スレッド

2019年12月08日 | ブログラミング

もうね,一杯あるので,番号付けない

全部「ggplot を「けなしまくる」スレッド」

 

まずは,「ggplot2 まとめ: 初歩から程よいレベルまで」に描かれていることだけど

> ggplot(data=iris,aes(x=Sepal.Length,y=Sepal.Width))+ #キャンバス用意。使うデータ宣言。aes()の中でx軸とy軸指定。
+     geom_point()+ #キャンバスに散布図を上書き
+     geom_smooth()+ #さらに回帰線を上書き
+     theme_bw() #白を基調としたグリッド線の設定セットを上書き

描かれた図がこれ


これで何がわかる?

逆に言えば,何かがわかるために描いた図ではないということ

geom_smooth() って,なんの必要性があるのやら

どうすればいいかって?

そんなの知らない!! サジを投げる

続いて,

> ggplot(iris,aes(x=Petal.Length))+ geom_histogram()

 

なんだこりゃ。2つのグループがあるように見えるけど。実際は 3 つのぐるーぷがあるんだよおおお〜〜〜。

まだあるようだけど,もういいわ

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ggplot を「けなしまくる」スレッド

2019年12月08日 | ブログラミング

まあ,とにかく ggplot がいやなんです。自分で使うなんてもってのほかで,ほかの人が使っているのを見るのもいや。

「ほかの人が使っているのなんかいいじゃないか!!」と,普通の人は思うでしょうが,私は,断固!!いやなんです!!!

統計リテラシーに問題があると思うんです!!!

 

まずは,

  • デフォルトで,背景が灰色(ダサい)
  • デフォルトで,グリッドライン描画(ダサい)

いや,いいんですよ,デフォルトじゃなくて,灰色が普通の白(または透化),グリッドも描かないという人は

でも,その他のデフォルトも,「いや〜〜ん」なことも多いのでは?

みなさん,「いや〜〜ん」だったことありませんか?

告発お待ちしてます(^_^;)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ggplot と base(その5)

2019年12月08日 | ブログラミング

ggplot のヒストグラムですが,他と同じく,デフォルトで使うとひどい目に遭います(ひどい目に遭ったことにも気づかないほどのひどい目です)。

いつものように,るんるん気分で,データフレーム df にある変数 x のヒストグラムを描いてみます。

df <- data.frame(value = x)
ggplot(df, aes(x = value)) + geom_histogram()

「おやまあ,なんか変な分布だなあ」ぐらいに思い,

 警告:  Ignoring unknown parameters: bin
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

なんて,警告(!!)も出ていることだからと,「まあ,bins = 12 ぐらいで何とかなるか?」

df <- data.frame(value = x)
ggplot(df, aes(x = value)) + geom_histogram(bins = 12)

「ふーんそうか」で終わらせてしまう...

========================

同じデータを graphics:::hist で描く(デフォルトで)

hist(df$value)

「あれ,ずいぶんと整然としたデータ」

実はこのデータ,

x = rep(0:10, c(1,2,3,4,5,6,5,4,3,2,1))
set.seed(123456)
x = x + runif(length(value), 0.01, 0.99)

として作られたもの。

> x
 [1]  0.7918286  1.7484938  1.3934306  2.3447256  2.3640682  2.2043778  3.5341608
 [8]  3.1045957  3.9780900  3.1742181  4.7920293  4.5919181  4.8972038  4.8732317
[15]  4.9839598  5.8880372  5.8710705  5.2036536  5.3382937  5.7716622  5.1664017
[22]  6.0890323  6.1399973  6.1784673  6.4782223  6.6964947  7.8722913  7.8702378
[29]  7.8468020  7.1726678  8.5225094  8.8617456  8.2365336  9.1266993  9.8174722
[36] 10.0886714
> as.integer(x) # 小数点以下を切り捨てると,0 ~ 10 の数になる
 [1]  0  1  1  2  2  2  3  3  3  3  4  4  4  4  4  5  5  5  5  5  5  6  6  6  6
[26]  6  7  7  7  7  8  8  8  9  9 10
> table(as.integer(x)) # 0以上 1未満,1以上 2未満... と集計すると

 0  1  2  3  4  5  6  7  8  9 10
 1  2  3  4  5  6  5  4  3  2  1


じゃあ,というので ggplot がリターンマッチ。

ggplot(df, aes(x = as.integer(value))) + geom_histogram(bins = 12)

とやったら,とんでもないものが描けた。

はい,終了!終了!!

他のまともなデータならこんなことはない(といいのだけれど)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

図を描くときに「やるべきこと」と「やってはいけないこと」(その4)

2019年12月08日 | ブログラミング

ggplot を使ったグラフ例でよくあるのは,以下の図はまだましだが,グラフのサイズがデフォルトのままで,中の文字が「小さすぎて読めな〜〜〜いっ(はずきるーぺもってこ〜〜い」状態のもの。

なお,以下のグラフの問題点は数多く。

  • 図全体の大きさに対して,文字が相対的に小さくなりすぎている。
  • グリッドラインは不要である。
  • 凡例が図の右にあるのはあまりよくない。
  • 背景がデフォルトのhままの灰色。この場合特に下の方にある●が背景に埋もれかかっている。
  • 横軸と縦軸の 2 変数以外の 3 番目の変数 species を色わけで表すのはよいとして,しかし,アルファチャンネルを seeds に対応させ,マークの大きさまでも seeds に対応させてしまったので,下にある点ほど小さくて淡くなるという(同じ変数を3つもの表現(縦軸,大きさ,透明度)に使い回すのは意味がないというよりひどい)。

library(ggplot2)
library(ggsci)

A <- data.frame(
    weight = c(1.2, 1.5, 1.1, 1.6, 1.6, 1.4, 1.3, 0.9, 1.1),
    seeds  = c(26, 31, 19, 34, 38, 23, 24, 21, 24)
)
B <- data.frame(
    weight = c(1.6, 1.7, 1.8, 1.6, 1.5, 1.9, 2.1, 2.1, 2.4),
    seeds  = c(32, 30, 41, 34, 33, 43, 46, 48, 55)
)
C <- data.frame(
    weight = c(1.1, 1.3, 1.6, 1.3, 1.2, 1.9, 1.8, 1.4, 1.7),
    seeds  = c(14, 13, 17, 11, 9, 21, 20, 16, 14)
)

x <- rbind(data.frame(species = "A", A),
           data.frame(species = "B", B),
           data.frame(species = "C", C))

quartz("ggplot", 3.5, 2.5, bg = "white")
g <- ggplot(x, aes(x = weight, y = seeds, size = seeds, alpha = seeds, color = species))
g <- g + geom_point()
g <- g + scale_color_nejm()
print(g)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村