pyplot.scatter
c=
にグループに対応する配列を渡すことができます。しかし、これは、各グループを個別にプロットせずに凡例を生成することをサポートしていないようです。凡例を含む散布プロットをplt.scatterを複数回呼び出すことなく着色した
ので、例えば、グループを反復処理し、それぞれ個別にプロットすることによって生成することができる色のグループとの散布図:生成
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
feats = load_iris()['data']
target = load_iris()['target']
f, ax = plt.subplots(1)
for i in np.unique(target):
mask = target == i
plt.scatter(feats[mask, 0], feats[mask, 1], label=i)
ax.legend()
は:
私は達成することができますしかし、各グループを反復することなく同様の見た目のプロット:
f, ax = plt.subplots(1)
ax.scatter(feats[:, 0], feats[:, 1], c=np.array(['C0', 'C1', 'C2'])[target])
しかし、この2番目の戦略では、対応する凡例を生成する方法を理解できません。私が見てきたすべての例は、グループ全体を反復しています。私は手動で伝説を生成することができますが、もう一度それは非常に扱いにくいようです。
私はあなたが海底でこれを行うことができますが、私の実際の使用例(私が3D散布図をプロットしているところです)はシーボーンがサポートしていないことを認識しています。フードの下で海底はmatplotlibを使って実際にプロットをしています - 私は、シーボーンが散布図と関連する数字の伝説をペアプロット(またはプロットプロット)でどのように生成しているか見ることができます。私の推測では、サンプルコードの最初のビットのようにグループ全体がループしています。 – user3014097