Python ひとまず Matplotlib をやる

networkxの前にmatplotlib

スポンサーリンク

必要となる知識

  • 準備: pip install matplotlib | anacondaには最初からついてたきもする
  • なにができるか: データの可視化。グラフ化
  • pythonの基礎文法がわかればたぶんいける。しらんけど。
スポンサーリンク

matplotlibのサンプルコード

基本的には 既存情報 のトレースです。

折れ線グラフ

plotを使う。なぜか数字以外を使うとエラーになる。(たぶんやり方はある)

import matplotlib.pyplot as plt
price = [100, 300, 400, 100, 500]
number = [1,2,3,4,5]
plt.plot(number, price)

plt.title = 'fruits_price'
plt.xlabel("number")
plt.ylabel("price")
plt.grid(True)

plt.show()

plot

棒グラフ

barを使う。

import matplotlib.pyplot as plt
labels = ["A", "B", "C", "D", "E", "F"]
y = [10, 20, 30, 40, 50, 60]
x = range(0, len(y))
plt.bar(x, y, tick_label = labels)
plt.show()

bar

散布図

scatterを使う。書くのがめんどくさい。numpy を使えば簡単にかけるのかしら?とりあえず numpy はおいとくけど。

import matplotlib.pyplot as plt
import random

x = [1,2,3,4,5,6,7,8,9,10]
y = []
for i in range(0, 10):
    y.append(random.randint(1, 10))

plt.scatter(x, y)
plt.show()

scatter

円グラフ

pieを使う。labelは半時計回りに書けばいいらしい。

import matplotlib.pyplot as plt

labels = ["E", "D", "C", "B", "A"]
y = [100, 1000, 30, 20, 500]
plt.pie(y, labels = labels, autopct = '%1.1f%%',startangle = 90)
plt.show()

pie

matplotlibを応用してみる

ひとまずわたしのような にわか がグラフを使うのだったら上記の折れ線グラフとか円グラフで事たりるかなと。エクセルつかえばええやろが。となるかもしれないけど、そこは python でやりたい。

準備するもの

適当なテキストファイル。このブログ記事をテキストファイルにしてみる。(sample.txtという名前で保存しました)

matplotlibでkeyword出現率をしらべる

import matplotlib.pyplot as plt
import re

f = open('sample.txt', 'r', encoding='utf-8')
f = f.read()
_matplotlib = re.findall('matplotlib', f)
_plt = re.findall('plt', f)
_show = re.findall('show', f)

labels = ["show", "plt", "matplotlib"]
y = [len(_show), len(_plt), len(_matplotlib)]
plt.pie(y, labels = labels, autopct = '%1.1f%%',startangle = 90)
plt.show()

keyword

read()メソッドを使うと、ファイルの内容を全部読みこむことができる。そのうえで正規表現をつかう。re.findall()はマッチしたもの全てをリストにして返す。

まとめ・雑感

いつもノンプログラマーっぽいコードになってしまうが、様々なファイルや正規表現に対応したい場合、コードを編集する必要があると思う。

今回はファイル内のキーワード出現率だったが、名前と住所のデータベースから「ここに住んでいる人」は何%とかそういうのも可視化してみたい。

コメント

タイトルとURLをコピーしました