裏 RjpWiki

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

ggplot2 - ひいきの引き倒し(6)

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

円グラフでさえ物議を醸すのに,こんなとんでもないグラフが紹介されていた
(紹介するのはしかたないとしても,そもそも,そんなトンデモ機能が実装されていること自体が問題なんだよな)

 

これはしょうもない帯グラフ??

quan <- as.vector(table(iris1$Species))
pos <- cumsum(quan) - quan/2
quantity <- data.frame(Species=c("setosa", "versicolor", "virginica"), quantity=quan, position = pos)                       
                       
pie <- ggplot(iris1, aes(x=factor(1), fill=Species)) + geom_bar(width=1) + geom_text(data=quantity, aes(x=factor(1), y=position, label=quantity) , size=5) + labs(x="", y="")
pie

これが問題のグラフ。一体何なんだ。

pie + coord_polar()

これに比べれば,まだかわいげがある円グラフ。

pie + coord_polar(theta="y")

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

ggplot2 - ひいきの引き倒し(5)

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

ggplot2でgeom_lineする時にNAを無視して線をつなぐ

リンクするのは止めておく

時系列データなどで NA があるとき,その前後は線で繋がないというのは graphics::plot でも ggplot でも同じ仕様。

それはそれなりに意味がある。だって,途中がどうなっているかは神のみぞ知ることであるから。勝手に NA の前と後を繋いでしまっては「誤解が生じる可能性があるのだから」。

library("ggplot2")

smp <- data.frame(x = 1:5, y = c(1:3, NA, 5))

ggplot(smp, aes(x = x, y = y, group = 1))

+ geom_line()

+ geom_point()

ggplot(subset(smp, !is.na(y)), aes(x = x, y = y, group = 1))

+geom_line()

+ geom_point()

にするというのだ。

やってはいけない(せめて,破線で繋ぐくらいのことをしてくれ)。

そんなことしてくれなくてもわかるけど,その区間が NA  だということをちゃんと示さないといけないよ。

可視化(見える化)って,そういうもんでしょ?

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

ggplot2 - ひいきの引き倒し(4)

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

ジッターは使うな!!!

なぜ,ジッターを使う。

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

ggplot2 - ひいきの引き倒し(3)

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

この凡例は,何のためにあるのか?(念の為。色は縦軸の大きさの順に割当らているだけです。上の紫から,下の赤まで)

スペースの無駄遣い。
論文の投稿だと図の大きさで料金がかさむこともあるらしい。
無駄な凡例にお金(研究費?)を使う意味がわからない。

 

このグラフも同じ,凡例がなくても何の不都合もない(凡例があって良かった!なんて,誰も思わない)

 

これは,だれも笑うだろう。

 

この例では,x 軸の目盛りに描いてある名前が重なって読めない。
同じことを描いている凡例のスペースを振り分ければ,重なることもないだろうに。

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

ggplot2 - ひいきの引き倒し(2)

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

発表スライド(?)そのまま挙げるけど,統計学的に「結果として合計をプロットする」ことにどれ殿の意味があるか?群ごとのサンプルサイズが違えば合計をプロットしても意味はない。平均値をプロットするなら意味があるが。そもそも,合計値なら棒グラフでもよいかもしれないが,平均値なら棒グラフで表現するのが適切なのか?

いずれにせよ,大筋が間違えているので,細かなところがああだこうだ議論しても意味をなさない。

 

データの分布を可視化したいなら

plot(len ~ dose, data = ToothGrowth)

で,十分だ。それが「綺麗ではない」というなら,ggplot2 で書いて見ろ。

 

平均値のグラフも描いてあった。

上のグラフに,平均値の位置を描画してやれば,一石二鳥(一石百鳥)だ

繰り返すが,平均値を棒グラフで示すのは統計学的に正しいのか?

 

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

ggplot2 - ひいきの引き倒し(1)

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

ggplot2 の解説記事は,ggplot2 がいかに優れたパッケージかを宣伝するために,「これだけの記述でこんな素敵なグラフが描けますよ!!!」ということを言いたいがために,統計学のセンスがないために変なグラフ描画例を書いて(描いて)しまうこともあるようで。

ggplot(iris) + geom_line(aes(x=Sepal.Length, y=Sepal.Width))

なに?この「折れ線グラフ??」。

「データを可視化する」と言っているけど,データのどのよう特徴を見えるようにしているの?

折れ線グラフは,主に,時系列データの可視化(時間によってある観測値がどのように変化するか)に使われるものではないの?

このグラフで何がわかるの???ひいきの引き倒しとはこのようことであるという典型例。統計学のセンスのかけらもない。バックグラウンドが灰色だとかは言わないでおく。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

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

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