python3.doc_30
R e i - D r e a m
for Laravel
TOP > Python3 > ライブラリ
Guest
login

最終投稿日:2022年6月18日

目次
○ ライブラリ(Matplotlib)
様々なグラフをご紹介
ライブラリ(numpy)
配列を操ろう
ライブラリ(urllib)
[urllib][requests]
ライブラリ(BeautifulSoup)
[スクレイピングによる解析ライブラリ][セレクタ表]
ライブラリ(selenium)
[インストール(環境構築)][画面キャプチャをとる(サンプル)][selenium を使って Headless Chrome を操作する]
ライブラリ(Pandas)
[Pandas ライブラリ][色々なデータを操作][早見表]
ライブラリ(scikit learn)
[機械学習][学習させ、テストする]
ライブラリ(Mecab)
[Mecabとは][Mecabのインストール][MeCab-ipadic-NEologdの導入][PythonにMeCabを取り込む(バインド)]
ライブラリ(Matplotlib)
[Matplotlib]グラフ生成ライブラリ
○ 日本語対応の手順
※Anaconda をインストールしていれば標準ライブラリに含まれています
Matplotlib は日本語対応されていません。
以下の手順で日本語を設定する。
1.現在読み込んでいる設定ファイルの位置を確認します
import matplotlib
matplotlib.matplotlib_fname()
上記コードで設定ファイルのパスを確認する
例)
C:\Users\hoge\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc
※「matplotlibrc」が設定ファイルです。
2.この設定ファイルを「~/.matplotlib」以下にコピーします
例)
    C:\Users\xxxx\.matplotlib\matplotlibrc            ※コピーした後のフルパス
3.以下の2行を追記する
例)
font.serif : HGMaruGothicMPRO
font.sans-serif : HGMaruGothicMPRO
※使用できるフォントは「fontList.json」に記述されています。
○ 画像の保存
カレントディレクトリに画像を保存します。
注意する点は、必ず show メソッドの前に呼び出す事!
           ※表示する必要がなければ show メソッドは不要です。
例)
    plt.savefig('hoge.jpg')
    plt.savefig('hoge.png')
折れ線グラフ
matplotlib.pyplot モジュールをインポートする      ※plt の別名にするのが一般的
import matplotlib        ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
data = [2.,2.3,4.1,2.4,5.3,3.2,4.6]
plt.plot(data)
plt.show()
引数が1つの場合は、X軸はリストのインデックスとなる。
X軸、Y軸両方にデータを反映されたい場合は plt.plot(X軸,Y軸)の書式となる
● タイトルとラベルを設定する
plt.title(タイトル)
plt.xlabel(X軸のラベル名)
plt.ylabel(Y軸のラベル名)
● グリッドとマーカーを設定する
plt.grid(True)
plt.plot(price,count,marker='o')
【メモ】
マーカーには以下の種類がある
・marker='.'                                ・marker='1'
・marker=','                                ・marker='2'
・marker='o'                                ・marker='3'
・marker='v'                                ・marker='4'
・marker='^'                                ・marker='8'
・marker='<'                                ・marker='s'
・marker='>'                                ・marker='p'
・marker='P'                                ・marker='*'
・marker='h'                                ・marker='H'
・marker='+'                                ・marker='x'
・marker='X'                                ・marker='D'
・marker='d'                                ・marker='|'
・marker='_'
● 線の色
色は、データを設定する plt.plot(data) の部分に名前付き引数 color で設定する。
例)
import matplotlib            ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
data = [2.,2.3,4.1,2.4,5.3,3.2,4.6]
plt.plot(data,color='red')
plt.show()
【メモ】
色は「red」や「green」の様な指定は「#FFFFFF」の様なRGB指定もできる。
また、以下の様に短縮した名前も設定できます。
・'green'            ⇒ 'g'
・'red'                 ⇒ 'r'
・'cyan'              ⇒ 'c'
・'magenta'     ⇒ 'm'
・'yellow'          ⇒ 'y'
・'blue'              ⇒ 'b'
・'white'            ⇒ 'w'
● 線の種類
線は、データを設定する plt.plot(data) の部分に名前付き引数 linestyle で設定する。
例)
・plt.plot(data,linestyle='-')
・plt.plot(data,linestyle='--')
・plt.plot(data,linestyle='-.')
・plt.plot(data,linestyle=':')
○ 凡例を設定する
各データを設定する plt.plot(data) の部分に名前付き引数 label を設定し、
全体の凡例を legend メソッドの名前付き引数 loc で設定します。
例)
import matplotlib           ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
x = [100,200,300,400,500]
y1 = [40,65,80,100,90]
y2 = [34,56,75,91,79]
y3 = [25,47,68,76,73]
plt.plot(x,y1,marker='o',label='y1')
plt.plot(x,y2,marker='v',label='y2')
plt.plot(x,y3,marker='^',label='y3')
plt.legend(loc='upper left')
plt.show()
【メモ】
凡例の位置は以下の設定があります。      ※数値でも設定できる
・'best'                      ⇒ 0
・'upper right'        ⇒ 1
・'upper left'           ⇒ 2
・'lower left'            ⇒ 3
・'lower right'         ⇒ 4
・'right'                     ⇒ 5
・'center left'          ⇒ 6
・'center right'       ⇒ 7
・'lower center'     ⇒ 8
・'upper center'     ⇒ 9
・'center'                  ⇒ 10
曲線グラフ
曲線グラフは単純に直線グラフの座標が細かいだけでコードは同じです。
例)
import matplotlib            ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import math
x = range(0,360)
y = [math.sin(math.radians(d)) for d in x]
plt.plot(x,y)
plt.show()
棒グラフ
import matplotlib            ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
labels = ['A','B','C','D','E','F','G','H','I','J']
x = range(0,10)
y = [91,45,17,88,47,87,49,56,67,77]
plt.bar(x,y,tick_label=labels)
plt.show()
※棒グラフは bar メソッドを使う
名前付き引数 tick_label を指定しないと、X軸はインデックスとなる
【横棒グラフ】
メソッド barh を使う。
基本的な使い方は棒グラフと同じだが、軸の指定順序が「Y」「X」となる。
なので、メソッド bar を barh に変更するだけで綺麗に表示できる。
積み上げ棒グラフ
import matplotlib ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
labels = ['A','B','C','D','E','F']
x = range(0,6)
a = [34,46,54,45,56,37]
b = [17,47,55,67,38,49]
bar1 = plt.bar(x,a,color='green') bar2 = plt.bar(x,b,color='blue',bottom=a)
     ※グラフ a の上に積み上げる
plt.xticks(x,labels,rotation='vertical')
plt.legend((bar1,bar2),('man','woman'),loc=2)      ※凡例。バーとラベルを対応させる
plt.show()
散布図
import matplotlib            ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
x = [91,45,17,88,47,87,49,56,67,23,86,20,60,67,30,41,91,55,37,14]
y = [39,17,45,32,20,14,11,48,41,13,21,40,13,14,11,40,21,18,50,25]
plt.scatter(x,y,marker='o',s=500,alpha=0.5,linewidth=2,edgecolors='red')
plt.show()
s                        ⇒ マーカーのサイズ
color               ⇒ マーカーの色
alpha              ⇒ マーカーの透明度
linewidth      ⇒ マーカーの淵の太さ
edgecolors    ⇒ マーカーの淵の色
【メモ】
        マーカーのサイズは例えば s=変数、s=関数等にして動的にサイズを変更できる
円グラフ
import matplotlib            ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
labels = ['E','D','C','B','A']
v = [17,25,47,68,91]
ex = [0,0,0.1,0,0]
plt.pie(v,explode=ex,labels=labels,autopct='%1.1f%%',startangle=90,counterclock=False)
plt.show()
ex                                ⇒ 円から少し切り離して表示する距離
counterclock          ⇒ False で時計回りにグラフを作成する
startangle                ⇒ 90で12時の位置からグラフをスタートする
autopct                     ⇒ 各値の割合の小数点の桁
複数のグラフを表示する
複数のグラフを作成する場合、1つの領域にn個のグラフを作成するか、
n個の領域にn個のグラフを作成するかでコードが変わります。
● 1つの領域にn個のグラフを作成
上下に1個づつグラフを作成するには以下
import matplotlib            ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
y1 = [61,45,27,88,47]
y2 = [17,39,46,40,27]
labels = ['A','B','C','D','E']
plt.figure()                      ※領域に対して1つ実行する
plt.subplot(2,1,1)        ※領域に対してグラフの位置を指定する。2行、1列の領域に対して1番目を指定している
plt.bar(range(0,5),y1,color='b',tick_label=labels)            ※通常のグラフを定義
plt.subplot(2,1,2)                                               ※2番目のグラフの位置をしていする
plt.bar(range(0,5),y2,color='g',tick_label=labels)            ※通常のグラフを定義
plt.show()                                                              ※通常に表示する
【メモ】
        変則的なレイアウトの場合
+---------+
|   ①    |
+----+----+
| ② | ③ |
+----+----+
① plt.subplot(2,1,1)      2行、1列、1番目
② plt.subplot(2,2,3)      2行、2列、3番目      ※①はマージされているだけで、本来は1番・2番の領域となるため
③ plt.subplot(2,2,4)      2行、2列、4番目
● nつの領域にn個のグラフを作成
2つの領域に各1個のグラフを作成するには以下
import matplotlib            ※この2行を記述しないと、apache経由からの描画でバグります
matplotlib.use('Agg')
import matplotlib.pyplot as plt
y1 = [61,45,27,88,47]
y2 = [17,39,46,40,27]
labels = ['A','B','C','D','E']
plt.figure()                                          ※1つ目の領域として実行する
plt.bar(range(0,5),y1,color='b',tick_label=labels)            ※通常のグラフを定義
plt.figure()                                          ※2つ目の領域として実行する
plt.bar(range(0,5),y2,color='g',tick_label=labels)            ※通常のグラフを定義
plt.show()
その他の便利な機能
● 領域の余白を調節する
plt.subplots_adjust(left=0, right=1, bottom=0, top=1)
きっぷる
ログインしてコメントを残そう!!


きっぷる