まずは最も単純な線形のグラフを描いてみます




つづいて、グラフのタイトル、x,y軸のタイトルをつけてみます。




つづいて、グラフの背景色を変えて、グラフの描画エリア(width)を変えます。




つづいて、グラフ右上に表示されているツールバー(floating tool bar)を消してみます




つづいて、グラフの右y軸の値として棒グラフを追加してみます。




最後に、凡例(legend)に名前を付けてがy軸に重なってしまっているので位置をずらします。

Posted at: 2018-05-28 06:51:13  Category: programming


Plotly Dash使ってこのブログのアクセス数を表示するようにしてみました。
https://stats.mtcq.jp/
Posted at: 2018-04-09 08:35:45  Category: programming


Pythonのデータ可視化ライブラリ、Plotly Dashのお勉強をしています。
Pythonだけの知識を用いて簡単にWebベースの可視化ツールを作れるので面白いです。

勉強がてら、簡単なツールを作ってみました。csviz
1スクリプトファイルからなります。

CSVファイルっぽい形式のファイルを配置したディレクトリを引数に指定して起動します。
$ python csviz.py dataset/

datasetディレクトリ配下には下記のようなファイルを置いてます。
$ cat dataset/hoge_service_level
# Service Level for Hoge Server System
# Hoge Servers
# Service Level(%)
# bar
# _, IPv4, IPv6
sv1.hoge.net, 95.7, 92.6
sv2.hoge.net, 94.3, 98.4
sv3.hoge.net, 98.3, 99.4


こんな感じでグラフが描けます
Posted at: 2018-03-18 16:41:03  Category: programming


Common Lispのプロジェクトの雛形を作るときは、よくcl-projectを使っています。

大きめのテストデータ(ファイル)をプロジェクトローカルに配置したかったんだけど、
プロジェクトのルートのパスをどうやって取得するんだっけのメモ
(asdf:system-source-directory :dnslib-test)
上記で取得可能
Posted at: 2018-03-11 11:42:15  Category: programming

1. したいこと

文字列間の類似度を調べたい.

2. 背景

ホモグラフ攻撃を検出したい。
国際化ドメイン名(IDN Internationalized Domain Name)と証明書を容易に発行できる環境(Let's Encryptとか)が
普及したことから、ブラウザのアドレスバーをぱっと見ただけでは、危ないサイトかどうか見分けがつかない可能性がある.
あるドメイン名(文字列)が、既存の有名サイトのドメイン名(文字列)とどれくらい似ているのか調べたい。

3. 方法

Pythonのdifflibとかlevenshteinとかを使えば、
文字列間の(編集)距離を容易に調べることができる。けれども、目的は人が見た時に文字列同士をどれくらい
誤認しやすいか、を調べること。なので、画像の類似度を算出できる Average Hash を使うことにする。

4. 実装

文字列を画像にして類似度を Average Hash で出す。
効率度外視で実装してみたコード↓(PIL: Python Imaging Libraryを使う)

4. 結果

上記スクリプトを実行してみる。
$ python calculator.py 
microsoft.com      mjcrοsοft.cοm: 0.956062
google.com       gοοgle.com: 0.963840
example.jp       exqmpjε.jp: 0.972960
おはようございます   こんちは: 0.309867
ストロンチウム     ス卜口ンチウム: 0.970743
算出値は0から1の値を取ります。1に近いほど文字列が似てることを示します。

o(オー)はギリシャ文字のο(オミクロン)にしてたり、
e(イー)はε(イプシロン)にしてたりします。

あと、ト(ト)を卜(ボク)にしてるのと
ロ(ロ)を口(クチ)にしてたりします。

わりといい感じになったのかなと思います。