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

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

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

#contents

// 以下の形式でお願いします。
// 疑問文はなるべく一つの質問になるようにお願いします。
// ** 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 を立ち上げる必要があるのですか?(NOBUさん) [#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 に変換しています。

*** Thanks! [#wd2ab8de]

ありがとうございます!
convertというコマンドは発見していたのですが、使い方がわからず苦戦していました。
助かりました :)

** 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

*** Thanks a lot! [#u443b85f]

ありがとうございます!
gnuplot、奥が深いんですね。。。

** Q. epsファイルがうまく開けません(NOBU) [#qe6c54cd]

初歩的な質問に丁寧に答えて下さりとても助かります。~
どうもありがとうございます。~
おかげさまでだいぶgnuplotが分かってきました :) ~
また一つ質問させて頂きます。

X Window上で

 set term postscript eps enhanced colour
 set output "test.eps"
 plot x

と入力するとファイルができあがるのですが、illustratorで開くと図が表示されません。~
何が問題でしょうか。

COさんの書いたplot01.gpもcygwin上で

 gnuplot plot01.gp

と入力してできたファイルはうまく開けるのですが、XWindow上で

 load plot01.gp

と入力してできたファイルはうまく開けません。

よろしくお願いします。

*** A. gv コマンドを試してみて下さい。 [#uf8e6b73]

X Window を立ち上げて、コマンドラインから gv test.eps & として各場合のファイルを開いてみて下さい。~
もしかすると illustrator では開けなくても gv では開けるかもしれません。~
その場合、illustrator が gnuplot が出力する eps の形式に対応していない可能性もあります。

*** Q.gvでも開けませんでした。 [#f813b611]

他に何か考えられる原因はありますか?~
試しにwindows版のgnuplotでも同じことをやってみたのですが、同じ症状が出てしまいました。

*** A. こちらで再現できません。 [#b855f7dd]

こちらで現象を再現することができません。~
もう少し詳しく、こちらでも同じことが再現できるように手順を書いていただけますでしょうか。~
あと、開けないというファイルをこのページに添付してみてください。

ちなみに

 load plot01.gp

は

 load "plot01.gp"

というようにしないとダメだと思います。

*** 解決しました。[#e5d98b50]

すいません、もう一度行ったらgvで開くことができました。~
ちなみに行った操作はXWindow上でgnuplotと入力し
 >gnuplot
のモードにした後
 set term postscript eps enhanced colour
 set output "test.eps"
 plot x
と入力しました。
自分としては同じ操作を行ったつもりなので、何が変わったかは良く分かりませんでした。~
またそれ以降、でき上がったepsファイルをillustratorで開けるようになりました。~
ただ、epsファイルを作製した後に一度~
 >gnuplot
のモードからexitで抜けないとだめなようで、exitしなければファイルは作製されていますが前回同様見れませんでした。

*** 出力が中途半端になってしまうから? [#u6d868f3]

exit で抜けないとファイルが正常に作成されないのは、出力を閉じる操作が gnuplot を抜けることによって行われるからではないでしょうか。
たぶん、ターミナルを切り替えても良いと思います。

 set term postscript eps enhanced colour
 set output "test.eps"
 plot x
 
 set term x11

など。

*** Re:出力が中途半端になってしまうから? [#l7329cbd]

 set term postscript eps enhanced colour
 set output "test.eps"
 plot x
 
 set term x11

を試してみましたがexitしない時と同じ症状がでてしまいました。~
やはりexitしないと図が表示されません。
他に何か対策があれば教えて下さい。~
よろしくお願いします。

*** ファイルロックの解除 (篠原) [#mdc7da25]

プロットが終わった後に、ファイル名指定をしないで、
 set output
を実行してみてください。

ファイルへのロックが解除され、ほかのアプリケーションからアクセスできるようになるはず・・・

(篠原)


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

篠原さん、アドバイスどうもありがとうございます。~
無事問題が解決しました。

** Q. 三次元表示(NOBU) [#m096d84f]

もはやアクセスログとは関係なくて恐縮ですが、~
円筒座標系(r,θ,z)のrに対するzの値(z(r)とでもいいますか)~
をデータとして持っている場合にこれを三次元表示させることはできますか?~
θに関しては対称なのでこのz(r)をぐるっと一回転させたグラフを描きたいのですが。
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新の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.