2017-11-23 19 views

答えて

6

Yellowbrickは、視覚化を生成するために、matplotlibのをラップし、あなたはmatplotlibのために直接呼び出しを行うことにより、図のすべての視覚的な設定に影響を与えることができます。私はそれを行う最も簡単な方法はVisualizer.axプロパティへのアクセスを取得し、そこに直接設定することですが、pltを直接使用してグローバルな図を管理することもできます。ここで

はあなたに似た例を生産するいくつかのコードです:これは、生成され、次の画像になり

import pandas as pd 

from yellowbrick.classifier import ConfusionMatrix 
from sklearn.ensemble import AdaBoostClassifier 
from sklearn.model_selection import train_test_split as tts 

data = pd.read_csv('examples/data/occupancy/occupancy.csv') 

features = ["temperature", "relative humidity", "light", "C02", "humidity"] 

# Extract the numpy arrays from the data frame 
X = data[features].as_matrix() 
y = data.occupancy.as_matrix() 

X_train, X_test, y_train, y_test = tts(X, y, test_size=0.2) 

clf = AdaBoostClassifier() 
viz = ConfusionMatrix(clf) 

viz.fit(X_train, y_train) 
viz.score(X_test, y_test) 
viz.poof() 

Small Font Confusion Matrix

あなたは正しいscore後に姿を管理するために開始することができますpoofの前には、次のようになります。

viz.fit(X_train, y_train) 
viz.score(X_test, y_test) 

for label in viz.ax.texts: 
    label.set_size(12) 

viz.poof() 

これは内側に少し大きめのフォントで、以下の画像を生成します。ここで何が起こっている

Large Font Confusion Matrix

私は直接のすべての要素が含まれていビジュアライザにmatplotlibのAxesオブジェクトにアクセスしてるということですお絵かき。グリッドの中央にあるラベルはTextオブジェクトなので、サイズを12ptに設定したすべてのテキストオブジェクトをループします。このテクニックは、必要に応じて表示前にビジュアル要素を変更するために使用できます(通常、ビジュアライゼーションに注釈を付けるために使用します)。

注意は、しかし、そのパッと消えるがfinalize関数を呼び出し、これ等のタイトル、軸ラベル、のようないくつかのものがパッと消えるを呼び出した後に変更、またはによりfinalizeその後、plt.show()を呼び出すことによってpoofを短絡する必要があります。

この特定のコードはConfusionMatrixでのみ動作しますが、これをもっと簡単にするか、少なくとも将来的にはもっと読みやすくするために、Yellowbrickライブラリにissueを追加しました。

関連する問題