2017-07-08 19 views
0

私はPythonで散布図を作成しようとしています。私は、指定されたカテゴリとxとyとのデータフレーム「DF」は、列番号でありますpandasとmatplotlibでプロットする

groups = df.groupby(category) 
fig, ax = plt.subplots() 
for name, group in groups: 
    ax.plot(x=group.iloc[:,x], y=group.iloc[:,y], marker='o', linestyle='',label=name) 
fig = ax.get_figure() 
fig.savefig(path) 

何らかの理由で、私は空の散布を取得しています - 私が何か間違ったことをやっていますか?

答えて

1

ax.plotxy引数がありません。

署名はAxes.plot(*args, **kwargs)です。つまり、xyは単なる位置引数です。 x=y=を指定すると、キーワード引数として扱われ無視されます。

だから、完全な例

、コードから

ax.plot(group.iloc[:,x], group.iloc[:,y], marker='o', linestyle='',label=name) 
x=y=を削除します。

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame({"x":np.random.rand(40), 
        "y":np.random.rand(40), 
        "category": np.random.choice(list("ABCD"), size=40)}) 
category = "category" 
x=1; y=2 
groups = df.groupby(category) 
fig, ax = plt.subplots() 
for name, group in groups: 
    ax.plot(group.iloc[:,x], group.iloc[:,y], marker='o', linestyle='',label=name) 
fig = ax.get_figure() 
#fig.savefig(path) 
plt.show() 
+0

はあなたの助けをありがとう:) – Ivan

関連する問題