物理のかぎしっぽ CO/アクセスログを描いてみよう/QandA のバックアップソース(No.20)
[[CO/アクセスログを描いてみよう]]

* アクセスログを描いてみよう Q and A [#idc4eba1]

疑問があれば一問一答形式でお答えします。~
なお、質問文は後の参照のために一部改変させて頂くことがあります。

// 以下の形式でお願いします。
// 疑問文はなるべく一つの質問になるようにお願いします。
// ** Q. 疑問分
// *** A. 回答文


** Q. 過去7日間の平均アクセス数を出したいのですが。(篠原さん) [#ub21f10a]

*** A. tail, awk を組み合わせると楽です。 [#k9b9ff15]

tail コマンドはテキストファイルの最後の N 行を表示するコマンドです。

コマンドラインで次のようにすると、過去7日間の平均値が得られるでしょう。

 tail -7 daycount.log | awk 'BEGIN{n=0}{n+=$2}END{print n/7}'

実行結果は以下の通り。

 [koizumi@supernova ~/access_log]$ tail -7 daycount.log | awk 'BEGIN{n=0}{n+=$2}END{print n/7}'
 586.571
 [koizumi@supernova ~/access_log]$

*** ありがとうございます! [#n9d6bb4c]

COさん、ありがとうございます!! :)
いくつか質問を追加しますので、よろしくお願いいたします。

** Q. Cygwin でグラフが表示されない (NOBU さん) [#ee0a3e69]

この機会にgnuplotを憶えてみようと思います。

cygwinをdownloadし、cygwin上でgnuplotを使おうと試みています。~
cygwin上で"gnuplot"とtypeすると"gnuplot>"と出て来ることを確認しました。~
本によるとこの状態で"plot sin(X)"とtypeすると新しいwindowが開いてグラフが表示されるとあるのですが表示されません…。~
unixでなくcygwin上で行おうとするの何か別の操作が必要なのでしょうか?~

教えて下さい。よろしくお願いします。

*** A. X Window を立ち上げてください。 [#lbe6343d]

Cygwin で gnuplot を使って画面上にプロットする場合には X Window が立ち上がっていないといけません。~
Cygwin コンソール上から
 startxwin.sh &
または
 startx &
と打ち込んで X Window を立ち上げ、
そのときに出てくるターミナル上から gnuplot を実行してみてください。

*** どうもありがとうございました。 [#z6deea66]

上記問題は無事解決しました。

** Q. どんなときに X Window を立ち上げる必要があるのですか? [#qf7f3231]

どんなときCygwin上で操作を行い、どんなときX windowを立ち上げる必要があるのか、大まかな説明をして頂けますか。

*** A. 別ウィンドウを開く必要があるときです。 [#ma7d1698]

ふつうのコンソール画面は別ウィンドウを開くことを想定していません。
マルチウィンドウの機能を使うとき、X Window システムを立ち上げます。

** Q. epsファイルを作った後は?(篠原) [#n428230f]

gnuplotでepsファイルを作った後、どのようにpngファイルを作ったらよいのでしょうか?

*** A. convert コマンドを用いると良いです。 [#o84dbadf]

convert コマンドは画像に様々な処理を加えることができるツールです。
eps から png に変換するには以下のようにします。

 convert input.eps output.png

拡張子を自動で判別して変換してくれます。もし出来上がったファイルが 90度回転していたら

 convert -rotate 90 input.eps output.png

というようにしてください。eps の解像度を指定したい場合には

 convert -density 100x100 input.eps output.png

というように 縦x横 を dpi 単位で指定します。png に変換する場合は出力される画像サイズが変化します。

出力画像を透過 png にしたい場合には

 convert input.eps -transparent white output.png

とします。white は透過色を指定しています。なお、この方法で作成した png は IE だと透過して表示されません。
IE でも透過されるようにするには

 convert input.eps -transparent white -colors 256 output.png

というように色数を 256色に指定します。

なお、gnuplot では最初から png で出力することもできます。
その場合には terminal を png に変更します。

 set term png

ただし postscript を出力する場合に比べて見た目が少し貧弱な気がするので、
いったん eps を経由して png に変換しています。

** Q. 横軸の文字を回転させるには?(篠原) [#yfdf7a97]

&ref(雑談用掲示板/sample.png,noimg);のように、横軸の文字が重なってしまいます。 :( ~
COさんの作られたページでは横軸の文字が斜めになっているのですが、どのようにしているのでしょうか?

*** A. xtics を設定して下さい。 [#g670dd2e]

xtics の設定を変更して下さい。文法は次の通りです。~
(これは gnuplot から help xtics で見られます。)

 Syntax:
       set xtics {axis | border} {{no}mirror} {{no}rotate {by <ang>}}
                 {  autofreq
                  | <incr>
                  | <start>, <incr> {,<end>}
                  | ({"<label>"} <pos> {<level>} {,{"<label>"}...) }
                 { font "name{,<size>}" }
                 { textcolor <colorspec> }
       unset xtics
       show xtics

横軸の tics を 290 度回転させるには次のように指定します。

 set xtics rotate by 290
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji Powered by PHP 5.3.29 HTML convert time to 0.010 sec.