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

データセットmtcarsをfactorにしたcarbで色分けしてプロットするため、次のようなコードを書いたとする。

library(ggplot2)
ggplot(mtcars, aes(x = hp, y = qsec, colour = factor(carb))) +
  geom_point()

結果はこうなる。

f:id:Rion778:20210824124507p:plain

ここで、carb == 3の場合のみ色を黒色にしたいとする。どうするべきか?

続きを読む

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

データポータルの限界

Googleデータポータル*1はSpreadsheetやGoogle アナリティクス等の様々なデータソースと接続して気軽に表・グラフを含むレポートを作成できる強力なツールだ。しかし、データポータルに標準で用意されていない可視化手法を実現しようとするととたんに困難にぶち当たる。

例えばデータポータルではヒストグラムを作成できない。いやそんなまさかという感じだができないものはできない。

箱ひげ図もダメだし、棒グラフにエラーバーもつけられないし、ヒートマップも描けないし、色と形の両方に変数を割り当てた散布図も描けないし…

とまあできないことを並べていくとキリがない。

しかしデータポータルはできる範囲のことをやるだけなら手軽だ。特にデータの探索機能は優れている。いろいろな条件でデータを絞り込みながら、簡単な棒グラフや折れ線グラフ、データテーブルを眺める。それで満足すべきではないのか…?

だがやはりヒストグラムくらいは作りたい。そうでなければ日常生活に支障がある。できればもっと複雑な可視化もしたい…

*1:どういう経緯か不明だが日本語以外では相変わらずData Studioという名称が使われているようで、Google Data Studioだとか#datastudioなどのキーワードを使わないと日本語以外のリソースが見つけづらい。

続きを読む

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

マネーフォワードのポートフォリオ(資産ページ)は資産の内訳が一覧できて便利なのだが、銘柄コードがあるものは全部株、という感じでざっくりしている。商品の区分も業種の区分もわからないので、もうちょい細かく見たいときに困る。というか自分のポートフォリオが実際どうなっているのかよく分かってない。これでは良くないということできちんと集計しようと考えた。

しかし証券会社のwebサイトの出力はしょぼいし、マネーフォワードのポートフォリオはそもそも出力できないしユーザーが使えるAPIも公開されてない、ということでマネーフォワードをスクレイピングすることにした。

続きを読む

似非エラトステネスの篩は「アイデアとして正しい」のか?

少し前に某所でエラトステネスの篩の実装が正しくないとかなんとかで話題になったことがあった*1*2。そこでの結論が「アイデアとしては正しいが高速化のための実装としては間違い」みたいなところに落ち着いてしまってイマイチ腑に落ちなかったので少し調べた。

続きを読む