Pythonのデータ視覚化ツールは、主にmatplotlib、pandas、seabornに依存しています。
1.データの視覚化にmatplotlibを使用する
1.1基本概念
- キャンバス/ペインティングボード
- 座標系/描画間隔
1.2コアステップ:絵を描くための3つのステップ
例として折れ線グラフを取り上げます
- 座標点の定義(データの準備)
plot(x, y)
グラフを描画します(デフォルトは折れ線グラフです)plt.show()
グラフの表示
注:プロット内のxとyは、いくつでも1対1で対応し、ペアで表示されます。
1.3詳細な紹介:
注意:合計を
指定しない場合、デフォルトで製図板とサブグラフが作成されます画板figure()
子图subplot
figure(1)
subplot(1,1,1)
1.キャンバスを作成します
キャンバスの作成+キャンバスサイズの設定:plt.figure()
キャンバスサイズパラメータfigsize = (8, 6)
を渡して、キャンバスサイズを調整することもできます。
2.座標系を確立します(描画領域を決定します)
いくつかの異なる方法があります:
2.1キャンバスのセグメンテーション+すべての座標系に戻る
plt.subplots()
メソッドの後続のパスaxes[x,y]
は、座標系を示すためにプロットされます。
2.2キャンバスのセグメンテーション+指定された座標系の位置(戻る)
ax= fig.add_subplot()
plt.subplot2grid()
plt.subplot()
最初のメソッドはオブジェクトプログラミングに属し、後の3つは関数型プログラミングに属します
次の3つのコード例:
plt.subplot2grid()
plt.subplot2grid((2,2),(0,0))
plt.subplot2grid((2,2),(0,1))
plt.subplot2grid((2,2),(1,1))
座標によって座標系の位置を制御します
subplot()
plt.subplot(2,2,1)
plt.subplot(2,2,2)
plt.subplot(2,2,4)
デジタル位置座標の制御
戦闘。
for i in range(len(crops)): # crops 为 10 张堆叠的图片 , 大小:(10, 224, 224, 3)
plt.subplot(2,5,i+1)
plt.imshow(crops[i, :, :, :])
結果:
subplots()
plt.subplots(2,2)
すべての(2x2)座標系を返す
3.座標軸を設定します
軸のタイトルを設定します
plt.xlabel("str")
plt.ylabel("str")
plt.title('str')
パラメータlabelpad
は、タイトルを軸距離に設定することも
できます。他の入力パラメータをstring
設定することもできます。
軸のスケールを設定します
スケール値を表示するスケールをカスタマイズする
plt.xticks(ticks,labels)
plt.yticks(ticks,labels)
ヒント:あなたは、X / Y軸の値を非表示にすることができます
ことにより、データのセキュリティを確保するために、空のリストを渡します。
plt.xticks([])
plt.yticks([])
座標軸の範囲を設定します
plt.xlim()
plt.ylim()
開始点と終了点をパラメータとして直接渡すだけです。
または、より簡単な方法を使用します。
axis[xmin, xmax, ymin, ymax]
たとえば、
plt.axis([0, 6, 0, 20])
ここでの入力はリストの形式ですが、データの処理を容易にするために、実際には内部でnumpy配列形式に変換されることに注意してください。
その他の設定
-軸表示をオフにします。plt.axis('off')
-グリッド線を開く:plt.grid(b = 'True')
渡すこともできます。axis参数
指定した軸のみを開くように指定します
-伝説
上の着信ラベルパラメータのような、その後、表示されました...plt.plot()
label = ‘str’
plt.legend()
5.チャートを描く
-Lineチャート:plt.plot(x,y)
-Histogram:plt.bar(x,y)
-scatterチャート:-Heatplt.scatter(x,y)
マップ:plt.imshow(x,cmap)
...
- 2Dダイアグラムの描画に使用されるオプションのパラメーター:
6.アイコン表示
plt.show()
1.4よくある質問
- 画像が表示されない問題を解決することです
%matplotlib inline
- 中国語の文字化けを解決する
plt.rcParams['font.sans-serif']='SimHei'
1.5最小限のコード実装
import numpy as np
import matplotlib.pyplot as plt
座標系
前述のように、一部の操作は省略できます
x = np.linspace(1, 20, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1)
plt.plot(x, y2)
複数の座標系
x = np.linspace(1, 20, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.subplot(2,2,1)
plt.plot(x, y1)
plt.subplot(2,2,4)
plt.plot(x, y2)
2.データの視覚化にパンダを使用する
Pandas
図面はmatplotlib
、
基本的な構文で作成されたパッケージです。
df.plot(x='列名1', y='列名2', kind='图形类型', label=‘图例名称’)
折れ線グラフ
from numpy.random import randn
np.random.seed(1)
df = pd.DataFrame(np.random.randn(20,3),index=np.linspace(0,19,20), columns=list('ABC'))
df.plot()
棒グラフ
from numpy.random import randn
np.random.seed(1)
df = pd.DataFrame(np.random.randn(5,3)+10,index=np.linspace(0,4,5), columns=list('ABC'))
df.plot.bar()
ヒストグラム
from numpy.random import randn
np.random.seed(1)
df = pd.DataFrame({
'A':np.random.randn(100),'B':np.random.randn(100)+1,'C':np.random.randn(100)+2})
df.hist(bins=20)
箱ひげ図
from numpy.random import randn
np.random.seed(1)
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
df.plot.box()
散布図
from numpy.random import randn
np.random.seed(1)
df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd'])
df.plot.scatter(x='a', y='b')
円グラフ
from numpy.random import randn
np.random.seed(1)
df = pd.DataFrame(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], columns=['x'])
df.plot.pie(subplots=True)
3.データの視覚化にseabornを使用する
総括する
- 1次元グラフ:(
直接意味がない)1次元データ
ボックスプロット - 二次元グラフ
散布図、折れ線グラフ、ヒストグラム、棒グラフ - 三次元図:
バブル図
続く〜