今回はtidyではないデータをtidyなデータに変形することで、より簡単にggplotでデータを可視化する方法について書きたいと思います。 tidyなデータとは何ぞやという方、参考にあげているページをご覧ください(なげやりですみません。。)。 まず、tidyではないデータとして、以下のデータフレームを用意します。 tibbleはRのデータフレームオブジェクトを拡張させたオブジェクトで多くのメリットを持ちます。 library(tidyverse) # 今回使用するtibble,tidyr,dplyr,stringr,ggplotパッケージはtidyverseパッケージに内包されています。 tb1 <- tibble(Place=c("Hiroshima","Osaka","Tokyo"), "2018-08-01 temperature" = c(30,33,28), "2018-10-0
ggplotで作成した複数のグラフを1つの画像にまとめて出力します。 色々と複数の図をまとめるパッケージがあるみたいですが、今回はgridExtraパッケージを使います。興味のある方は参考ページを見てください。 まず、各グラフを作成します。作成の仕方はRのデータ可視化パッケージggplotの基本を参考にして下さい。 # パッケージの読み込み library(ggplot2) library(gridExtra) # 各グラフの作成 df <- diamonds #データはdiamondsを使います。 p1 <- ggplot(df,aes(x=carat,y=price))+ geom_point() p2 <- ggplot(df,aes(x=cut,y=price))+ geom_boxplot() p3 <- ggplot(df,aes(x=price))+ geom_histogr
やりたいこと 箱ひげ図は分布形状を知るのに便利だけど、具体的な数値も知りたいところです。 当然summary()でもいいんですが、どうせなら一遍に知りたいし伝えたいので、 箱ひげ図に要約統計量を書きたいです。 とりあえずそれだけならstat_summary()でOK。 やったこと ただこれだけだとnが分からないので、以下を丸々参考に記載。 参考:https://stackoverflow.com/questions/40102613/ggplot2-adding-sample-size-information-to-x-axis-tick-labels StatN <- ggproto("StatN", Stat, required_aes = c("x", "y"), compute_group = function(data, scales) { y <- data$y y <- y[
library(ggplot2) library(purrr) library(stringr) gghl <- function(.geom, LL = list(colour = NA)) { #.geom Geom objects (e.g., ggplot2::GeomPoint) # LL default aethentics for lowlights Stats <- substitute(.geom) %>% # Generate Stat for lowlight and highlight deparse %>% stringr::str_replace('(.*::)?Geom', 'Stat') %>% paste0(c('LL', 'HL')) %>% # _class LL = lowlight HL = highlight list(c( # compute_
昨日の記事の続編ですが、昨日の記事のことは忘れていいです。 gghighlightについて グラフ作りにおいて、必要な情報だけを色付けてくれるパッケージ(yutannihilation氏作) http://notchained.hatenablog.com/entry/2017/09/29/212444 library(ggplot2) library(gghighlight) gghighlight_point(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species), Species == 'setosa', use_direct_label = FALSE) といった課題がある。 前者についてはggplot_add()の登場によって解決できる見通しっぽい。 https://yutani.rbind.io/post/20
ggplot2はレイヤの順番変更や、削除がやや手間 ggplot2は、便利な作図ツールですが、データや書式をレイヤに分けている関係上、レイヤを足す順番が大事になります。 例えば下記の図は、散布図と回帰曲線を足す順番を前後させたもの。 点を目立たせたいか、回帰曲線を目立たせたいか、考えてレイヤを足さなければなりません。 library(ggplot2) library(GGally) gp <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) layers <- list( geom_point(), geom_smooth(alpha = 0.6) ) ggmatrix( list( gp + layers, gp + rev(layers) ), nrow = 1, ncol = 2, xAxis
動機 誰かと仲良くなると急にメッセージが増える.そのあと疎遠になるとさっぱりやりとりをしなくなる傾向がある.いっぽう,長いあいだ関わりのある友人の場合,量は少ないが長期間にわたってメッセージをやりとりをする.こういうパターンを可視化したい.ひらたく言うと恋/友情/用事がどれほど熱くなって,どれくらいのスピードで冷めたかが見られるようになる. データの収集 まずはfacebookからデータを引っ張ってこないと始まらない.Facebookにログインし,ページの右上からSettings>Download a copy of your Facebook data.と辿っていくと全データがダウンロードできる.人によっては数百MB,数GBにおよぶと思う.ZIPを解凍するとそこにhtml/messages.htmというファイルがある.ここに全メッセージのデータが入っている・・・はずだったのだが,最近仕様
ある晩、旧知の研究者からggplot2を使って下記のようなグラフを書きたい、と問い合わせがありました。 ggplot2で回帰曲線を描きたい グラフのある点で回帰式が変わるので (次数が上がるとか言ってた)、区間ごとに分けて書きたい geom_smoothではなくて、推定されたパラメータを使ってダイレクトに書きたい predict関数を使うとグラフがギザギザになるので、別の方法で ちょうど私も中断時系列/回帰分断モデルのggplot2での作図に苦労していたので、二つ返事で引き受けました。 少し時間がかかってしまいましたが、宿題を提出致します。 結論 layer関数の第一引数にpredictで推定したデータのsubsetを指定することで、「ある時点」前後のグラフを重ねて出力することができる。 predict関数を用いても、ギザギザしないグラフを書くことはできる。ただし、パラメータの設定次第。
"counter","length","category" 50,0,NA 97,1,NA 122,2,NA 214,3,NA 134,4,NA 63,5,NA 204,0,"エンターテイメント" 633,1,"エンターテイメント" 400,2,"エンターテイメント" 315,3,"エンターテイメント" 292,4,"エンターテイメント" 490,5,"エンターテイメント" 14,0,"音楽" 100,1,"音楽" 151,2,"音楽" 186,3,"音楽" 552,4,"音楽" 131,5,"音楽" 130,1,"歌ってみた" 170,2,"歌ってみた" 2989,3,"歌ってみた" 1282,4,"歌ってみた" 347,5,"歌ってみた" 11,0,"演奏してみた" 86,1,"演奏してみた" 35,2,"演奏してみた" 125,3,"演奏してみた" 41,4,"演奏してみた" 34,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く