ggplot2 の検索結果:

ggplot2でヒストグラムに経験分布を重ねて描く

R

…が分かりづらくなる。ggplot2でも異なるスケールの2つのプロットを1つにまとめて表示することは推奨されていないので、そういうことをやろうとすると非直感的な操作が必要となる。 グラフは分けて描いて、必要であれば並べれば良い。そうしたことを行う簡単な方法はいくつかあるが、patchworkパッケージ(The Composer of Plots • patchwork)を使用した例を示す。 library(ggplot2) library(patchwork) g <- ggp…

ggplot2で離散スケールの一部の色だけ変更したい

…。 library(ggplot2) ggplot(mtcars, aes(x = hp, y = qsec, colour = factor(carb))) + geom_point() 結果はこうなる。 ここで、carb == 3の場合のみ色を黒色にしたいとする。どうするべきか? 考えられる方法はいくつかある。 scale_color_manual()ですべての色を指定する scale_color_manual()を使えば自由に色を指定できる。色をすべてコントロールできる…

Google データポータルでヒストグラムなどの標準的でないグラフを描く(Vega/Vega-Lite)

…imilar to ggplot2. The Vega and Vega-Lite grammars extend Leland Wilkinson's Grammar of Graphics. Vega and Vega-Lite visualisation grammars - Wikipedia ggplot2という単語が出てきた。Vega、Vega-Liteはggplot2と同じように、リーランド・ウィルキンソンのGrammer of Graphicsの実装の一つなの…

Rでマネーフォワードをスクレイピングする

R

…。 library(ggplot2) stock_catalog %>% mutate_at( vars(ends_with("業種区分")), ~if_else(. == "-", `市場・商品区分`, .) ) -> stock_catalog_mod stock %>% select(銘柄コード, 銘柄名, 評価額) %>% left_join(stock_catalog_mod %>% select(-1, -銘柄名), by = c("銘柄コード" = "コード")…

「マンガでわかる統計学[因子分析編]」の主成分分析をRでやる

…く library(ggplot2) library(ggrepel) target <- 1:2 target_vec <- ramen_decomp$vectors[, target] as.data.frame(target_vec) %>% mutate(item = c("麺", "具", "スープ")) %>% ggplot(aes(x = -V1, y = -V2)) + # テキストに合わせるために反転 geom_point() + geom_text_rep…

農薬の名前はポアソン分布に従っている

R

…。 library(ggplot2) library(gghighlight) kihon_mod %>% ggplot(aes(x = n)) + geom_bar(aes(y = ..prop..)) + geom_line(data = pois, aes(x = n, y = theory)) + gghighlight(key == "農薬の名称") + facet_grid(key ~ ., scales = "free_y") + lims(x = c(0, 3…

なんでn-1なんですか

…) library(ggplot2) # (n-1)/nを乗ずることでnで割った場合の分散を求める varp <- function(x){ var(x) * (length(x) - 1)/length(x) } # n = 2:20において各1000回ずつvar(rnorm(n))及びvarp(rnorm(n))を求める d <- data.frame() N <- 1000 for(n in 2:20){ d <- rbind(d, data.frame(n = n, …

プランクの法則を綺麗にプロットしたい

… パッケージ 今回はggplot2だけです。 library(ggplot2) 計算 k = 1.38e-23 # Boltzmann constant h = 6.62e-34 # Planck constant c = 3e8 # speed of light p_rad <- function(lambda, t){ 2*h*c^2/(lambda^5) * 1/(exp((h*c)/(lambda*k*t)) - 1) } lim = 5000 t = lim - (…

有機質資材からの窒素放出量を予測したい

…) library(ggplot2) library(ggrepel) 残存率、蓄積率、放出率を求める 毎年の有機物投入量を1として、t年後の残存率、累積率、放出率は、 ## functions --------------- residual_rate <- function(a, c, f, t){ # 残存率 a * 0.01^t + c * 0.63^t + f * 0.955^t } accum_rate <- function(a, c, f, t){ # 累積率…

グループ変数に応じて複数の折れ線グラフを書く

R

…解しやすい様に思う。ggplot2 # ggplot2 # install.packages("ggplot2") library(ggplot2) ggplot(data = d, aes(x = y, y = p, col = q)) + geom_point() + geom_line() + scale_color_hue(label = c(q0.1 = "q = 0.1", q0.3 = "q = 0.3", q0.8 = "q = 0.8")) latticeと…

ggplot2で凡例のラベルと項目名を操作する

…する 以下の説明ではggplot2を含めて3つのパッケージを使う。 library(dplyr) library(tidyr) library(ggplot2) データは次のように準備した。 # テストデータの準備 testdata <- data.frame(x = seq(1, 10, 0.1)) %>% mutate(sin = sin(x), cos = cos(x)) 散布図形式のプロットに適した形にデータフレームを整形する。 # 散布図の骨格を決める p <- t…

facetのstripのtextを変更する

R

ggplot2でfacet_gridやfacet_wrapを使ってグラフを分割描画した際に、各グラフについているラベル(strip)のテキストは、何もしなければ分割に用いたグループ名が自動的に入る。 例: ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) + geom_point() + facet_grid(.~Species) このラベル部分はlabeller functionという関数で制御されていて、標準でいくつ…

飽和水蒸気圧の求め方

…) library(ggplot2) 飽和水蒸気圧を求める式を定義する。AE1995は前述の通り。 GofGra <- function(t, s.cool=FALSE){ # Goff-Gratchの式 ifelse((t > 0) | s.cool, 10^ # 水または過冷却水(s.cool=TRUE)の場合(-50〜100度) (10.79574 * (1 - 273.16/(t + 273.15)) - 5.02800 * log((t + 273.15)/273.…

ggplot2で任意の線分

R

…nes()に対応するggplot2のレイヤー関数はgeom_line()であると説明される場合が多く、大抵の場合はそれで事足りるのだが、任意の位置に線分を描き込みたいという場合はあまり使い勝手が良くない。 例えば、「統計学:Rを用いた入門書(Michael J. Crawley)」の170ページに載っている次のグラフは、lines()を使ってデータポイントから平均値への線を書いている(詳しくは書籍を参照)。 同じようなことをggplot2を使ってやろうとして少し調べたところ、…

ggplot2で縦に並べたグラフの横幅を揃える

R

…g Axes in ggplot2 | Exegetic Analyticswww.exegetic.biz 使用データ 下記のように生成したものを用いる。 x <- 0:100 x <- data.frame(x = x, y1 = sin(x * pi / 10), y2 = x^2) なぜ横幅がずれるのか まず、これをbaseで普通にプロットする。 layout(matrix(1:2, 2)) plot(y1 ~ x, type = "l", data = x) plo…

Rでinstall.packages()しようとしたらエラー

R

…packages("ggplot2") --- Please select a CRAN mirror for use in this session --- Error: .onLoad failed in loadNamespace() for 'tcltk', details: call: dyn.load(file, DLLpath = DLLpath, ...) error: unable to load shared object '/Library/Framew…

8月の読んだ本、積んだ本、買った音楽

…のRプログラミング―ggplot2入門 案の定qplotまで読んで止まってる。ていうか最近は社会人らしくExcelVBAとかいじってるのd 超記憶術―「ぜったい覚える・忘れない」生活のヒント はじめよう!カンタンTRIZ―頭の片隅にあるアイデアをかたちにする本 駿河城御前試合 (徳間文庫) 一番目がシグルイの原作部分。ほかからも登場人物出てるけどマジでシグルイってこの量あれだけに引き伸ばしたのかよ感すごい。 水の分析 目次は充実してんだけど細かいところがちょっと突っ込み不足か…

時系列データのプロット

R

…思う。たぶん。本当はggplot2でのやり方くらいまで調べたかったが眠いのでとりあえずパス。 ## ---- make a test data ---- ## 30分間隔で3日間のデータ Time <- seq(as.POSIXct("2011-08-09 00:00:00"), as.POSIXct("2011-08-11 23:30:00"), length.out = 48*3) ## 一日を周期とする(温度を想定) tmp <- seq(0, 6*pi, length…

ggplot2のセパレータをドットにしたい

…は library(ggplot2) for(o in ls(pos = "package:ggplot2")) assign((gsub("_", ".", o)), eval(as.symbol(o))) p <- qplot(wt, mpg, data = mtcars) p + geom_smooth(aes(group=cyl), method="lm") p + geom.smooth(aes(group=cyl), method="lm") あまり細かく調べてな…

R苦手の会#9

今回で9回目です. 前回に引き続いてid:wakutekaさんにおんぶにだっこでRグラフィックスの中身を紹介してもらおうぜな会です. 前回:R苦手の会#8 - もうカツ丼でいいよな 参考:http://wakuteka.info/R/ 今回はlatticeパッケージでプロットするとき,データをグループに分ける方法なんかを勉強しました.

ggplot2についてちょっと勉強した(3) -themeを利用した外観の変更-

…たんですが,どうやらggplot2ではthemeというものを使うようです.Tsukuba.R#6のid:syou6162の発表(Tsukuba.R#6の発表資料 - yasuhisa's blog)の最後で少し紹介がありましたが,そこでもthemeを設定する関数が使用されています. それで調べてみるとかなりいろいろ設定できるということが分かったのと,まだ日本語の解説が無いっぽいのでまとめてみました. 参考: Introduction to data analysis. sta…

R苦手の会#8

…ですか? そうです!ggplot2もgrid使ってるんです!!! CRAN - Package ggplot2 xyplotが返すのはtrelisクラスのオブジェクト > p <- xyplot(lat~long, data=quakes, pch=".") > class(p) [1] "trellis" 代入したオブジェクトはprint(tplot)みたいな感じプロットできる print()はbaseに入ってる オブジェクトの変更,修正はupdate()を使う updat…

Re:Re:forとapplyの速度比較

…0 ) box() ggplot2使う data.frame変形しないとか無理です>< id:syou6162のはこんな感じですね. ## by syou6162 d2 <- data.frame(num = rep(d[,1], ncol(d)-1), time = as.numeric(as.matrix(d[,-1])), label = Reduce(c, sapply(names(d[,-1]), function(x){ rep(x, nrow(d))} ), c…

R苦手の会#7(Skype読書会)

…る。 ここでちょっとggplot2の例を見てみる。 data=irisの中のSepal.Lengthを使ってヒストグラムを描き、中身をSpeciesごとに塗り分ける。 library(ggplot2) ggplot(iris, aes(Sepal.Length, fill=Species))+ geom_histogram() Speciesごとに領域を用意してヒストグラムを描き、ついでに密度関数をプロット。密度関数を重ね描きするときはy軸をdensityに変更すると見栄えが…

ggplot2についてちょっと勉強した(2)

前回: ggplot2についてちょっと勉強した(1) - もうカツ丼でいいよな 今回はggplot2の上の方にあるOne hour ggplot workshopっていうpdfを読んだ。 順番が逆じゃないかと思うけど前回より基本的な部分。 またしても理解したような理解してないような微妙な感じだけど理解した分だけメモっとく。微妙な部分には(たぶん)とか書いてある。 使用するデータについて 準備 install.packages(ggplot2) library(ggplot2)…

RでアンチエイリアスしたグラフのプロットができるcairoDeviceパッケージ

R

…たいに使う。たとえばggplot2についてちょっと勉強した(1) - もうカツ丼でいいよなでのggplotの出力は全部標準のpng()デバイスに出力しているのでちょっとギザギザが気になる。 cairoDeviceのpngデバイスへ出力するならこんな感じ。 Cairo_png(width=5, height = 4) p + geom_smooth(aes(group = cyl), method = "lm") dev.off() こんなの出ます(プロットはggplot2使っ…

ggplot2についてちょっと勉強した(1)

ggplot2について ggplot2 要するにRでちょっとカッコイイグラフが簡単に作れるアレ。 リファレンスマニュアルを読んだのでノートを書く。 とりあえずhttp://had.co.nz/ggplot2/geom_abline.htmlを読んだ。点の打ち方と線の引き方。 まあでもぶっちゃけhttp://had.co.nz/ggplot2/geom_abline.htmlを省略しつつ訳しただけのようなものなのであまり面白くn*1(ry ノート 使われるデータセットについて …

Rでアンチエイリアスしたグラフをプロットする

R

…。 library(ggplot2) p <- qplot(wt, mpg, data = mtcars) dev2bitmap("bmaa.png", width=5, height=4, res=90, taa=4, gaa=4) p + geom_smooth(aes(group = cyl), method = "lm") dev.off() とかやるとこんな感じの出力が。 まあなんてきれいなんでしょ。 あとcarioDeviceパッケージや類似のCarioパッケージ…