gepuro.net
gepulog

データ分析エンジニアによる備忘録的ブログ

ユーザのアクセス元の街を可視化してみる

当ブログのユーザのアクセス元を可視化しました。

アクセス元のipアドレスからhttps://freegeoip.net/より提供されるAPIを用いて、どの街かを特定しました。

観測期間は適当です。(freegeoipでデータを取得し始めてからで、過去に遡るのは面倒だった)

以下が結果です。パレート図で描きました。

久しぶりにパレート図を見たわけですが、円グラフに比べて見やすいなあと感じます。もっと流行るとイイなあ。

それにしても、mountain viewって何だろうか。

最後にコードです。

cat data/* |
jq -r '
select(.site=="blog.gepuro.net") |
select(.geo.city != null) |
[.cid, .geo.city] |
@csv' |
sort |
uniq |
header -a '"cid","city"' |
q -H -O -d ',' '
select
case city
when "" then "unknown"
else city
end as city
, count(1)  as count
from -
group by city
order by 2 desc
' |
Rio -r -e 'df %>% mutate(crank=1:n())' |
Rio -r -e 'rbind(df[df$crank<10,c("city","count")], data.frame(city="other", count=sum(df[df$crank > 10,]$count)))' |
Rio -e 'library(qcc); library("devtools"); source("https://gist.githubusercontent.com/abikoushi/722ce195fb70df5cc679/raw/fd434a74d86ab3feb415da33b3f8abb4dd03355f/ParetoChart2.r"); city <- df$count; names(city) <- df$city; png("count_city.png"); pareto.chart2(city, unsorted=TRUE); dev.off()'

Rioを使ったら、読みにくくなってしまった。 qコマンドやjqコマンドと違って、改行を許してくれないんだよなあ。。。 (自分で直せって話だな)


似てる記事

似てない記事