| tCalculate and plot meme production rate - bitreich-memestats - statistical ana… | |
| git clone git://src.adamsgaard.dk/bitreich-memestats | |
| Log | |
| Files | |
| Refs | |
| LICENSE | |
| --- | |
| commit f80a953430c2244a2c307a6424d1921ad9509644 | |
| parent 5bfeec49a9374801c59c6f8d46c423d7d019e806 | |
| Author: Anders Damsgaard <[email protected]> | |
| Date: Tue, 21 Apr 2020 22:54:13 +0200 | |
| Calculate and plot meme production rate | |
| Diffstat: | |
| M extract-memecount.sh | 30 +++++++++++++++++++++++++----- | |
| M plot-memecount.sh | 17 +++++++++++++++-- | |
| 2 files changed, 40 insertions(+), 7 deletions(-) | |
| --- | |
| diff --git a/extract-memecount.sh b/extract-memecount.sh | |
| t@@ -15,21 +15,41 @@ if [ "$update_annna" = "yes" ]; then | |
| git pull >/dev/null 2>&1 | |
| fi | |
| +i=0 | |
| # derived from Hiltjo Posthuma's loc.sh | |
| -git log --pretty='format:%H %cd' --date="format:%Y-%m-%d" | \ | |
| +git log --pretty='format:%H %cd %at' --date="format:%Y-%m-%d" | \ | |
| sort -k 2 | uniq -f 1 | \ | |
| - while read -r commit date; do | |
| + while read -r commit date timestamp; do | |
| # hashtags originally stored in annna-start-services... | |
| n="$(git show "$commit:annna-start-services" 2>/dev/null | \ | |
| - grep -E '^ #[a-z0-9]' | wc -l)" | |
| + grep -E '^ #[a-z0-9]' | wc -l | awk '{print $1}')" | |
| # ...but are now stored in $memefile | |
| if [ "$n" -eq 0 ]; then | |
| - n="$(git show "$commit:$memefile" 2>/dev/null | wc -l)" | |
| + n="$(git show "$commit:$memefile" 2>/dev/null | wc -l | awk '{… | |
| fi | |
| if [ "$n" -gt 1 ]; then | |
| - printf '%s\t%s\t%s\n' "$date" "$commit" "$n" | |
| + | |
| + # only one row per day | |
| + if [ "$date" != "$lastprintdate" ]; then | |
| + | |
| + if [ "$i" -eq 1 ]; then | |
| + dn_dt="$(awk \ | |
| + -v n0="$n0" -v t0="$t0" -v n="$n" -v t… | |
| + 'BEGIN{print (n-n0)/(t-t0)*3600.0*24.0… | |
| + else | |
| + dn_dt=0 | |
| + i=1 | |
| + fi | |
| + n0="$n" | |
| + t0="$timestamp" | |
| + lastprintdate="$date" | |
| + | |
| + printf '%s\t%s\t%s\t%s\t%s\n' \ | |
| + "$date" "$commit" "$n" "$timestamp" "$dn_dt" | |
| + | |
| + fi | |
| fi | |
| done | |
| diff --git a/plot-memecount.sh b/plot-memecount.sh | |
| t@@ -11,11 +11,24 @@ fi | |
| gnuplot - <<__EOF__ | |
| set term dumb | |
| set title "annna meme count (total on $(date +%Y-%m-%d): \ | |
| -$(tail -1 "$1" | awk '{print $3}')) $semilog" | |
| +$(awk 'END{print $3}' "$1")) $semilog" | |
| set xdata time | |
| set format x "%Y-%m" | |
| -set timefmt "%Y-%m-%dT%H:%M:%S" | |
| +set timefmt "%Y-%m-%d" | |
| set xtics 2592000*4 | |
| $semilog | |
| plot '$1' u 1:3 w lp t '' pt 13 | |
| __EOF__ | |
| + | |
| +if [ -z "$semilog" ]; then | |
| + gnuplot - <<__EOF__ | |
| +reset | |
| +set term dumb | |
| +set title "annna meme growth (new memes per day)" | |
| +set xdata time | |
| +set format x "%Y-%m" | |
| +#set timefmt "%Y-%m-%d" | |
| +set xtics 2592000*4 | |
| +plot '$1' u 1:5 w lp t '' pt 13 | |
| +__EOF__ | |
| +fi |