【Python】matplotlibでufwのログを円グラフ化してみる
さて、引き続き本ブログのWEBサーバのufwブロックログを解析しています。
状況としては1月1日がトップでしたね。
その後、いくつかのIPアドレスをufwのdeny fromでブロックしたせいでしょうかね、
その後、二日目、三日目は落ち着いてきています。
IPブロック数については以下の通り。
特定のロシアのIPアドレスが多い状況でした。
前置きはこれくらいにしておいて、今回はタイトルの件についてやっていきます。
以前の記事では国別のグラフを棒グラフで表示していましたが、
今回はそれを円グラフにしてみました。
それではコードとその結果のグラフをそれぞれ紹介します。
棒グラフの場合
plt.barで表の種類を指定します。
そして引数には、名称、データの順番で指定ですね
plt.bar(plt_cnt_data,plt_cnt_ydata)
fig = plt.figure(figsize=(11,6),dpi=72)
plt.title('国別BLOCK数')
plt.bar(plt_cnt_data,plt_cnt_ydata)
path2="/share3/backup/ufwcnt.png"
plt.savefig(path2)
定番の棒グラフですね。
円グラフの場合
上記に対して、円グラフでは以下のようになります。
plt.pieで表の種類は「bar」ではなく、「pie」となります。
引数の順番も異なります。データ、名称、パーセンテージ指定、オプションで影の有無を指定します。
fig = plt.figure(figsize=(11,6),dpi=72)
plt.title('国別BLOCK数')
plt.pie(plt_cnt_ydata,labels=plt_cnt_data,autopct="%1.1f%%",shadow=True)
path2="/share3/backup/ufwcnt.png"
plt.savefig(path2)
まとめ
いかがでしたでしょうか。
このように円グラフにすると、全体に占める割合は明確でカラフルにもなりますね。
しかし、具体的な数値がわかりにくいですね。
表データの表現としては良くても、使う場合は別途資料などで数値は見せる必要はありそうです。