2017-04-21 3 views
0

sns.displot()을 사용하여 9 피쳐의 분포를 플로트하고 싶습니다. 그리고이 9 개의 그림을 하나의 그림으로 병합하여 명확하게 보여주고 싶습니다. 이 코드에서9 sns.displot() 사진을 1 장의 사진으로 병합 할 수 있습니까?

name = ['active_users','download','hot_songs','like','pre_plays','rate','sum_initial', 
     'w_rate','week_mean'] 
for i in range(9): 
    ax = plt.subplot(3,3,i+1) 
    plt.axis('on') 
    ax.set_title(name[i]) 
    ax.plot(sns.distplot(df[name[i]])) 

를 사용하려고 name 컬럼의 이름과 또한 내가 보여주고 싶은 특징이다. 그리고 난이 오류 TypeError: float() argument must be a string or a number가 나타납니다. 내 생각이 옳은지 모르겠다. 누군가 나를 도울 수 있습니까?

+0

새 사진 인 경우에도 사진에 대한 링크를 제공 할 수 있습니다. 반드시 전체 데이터가 아니라 문제의 [mcve]를 사용하여 명확한 문제 설명을 제공해야합니다. 이렇게하면 다른 사용자가 귀하의 문제를 재현 할 수 있습니다. – ImportanceOfBeingErnest

답변

1

Matplotlib의 플로팅 명령 ax.plot()은 다른 데이터 플로팅 명령으로 생성 된 축이 아니라 실제 데이터로 호출해야합니다. 따라서 ax.plot(sns.distplot(df[name[i]]))은 의미가 없습니다.

sns.distplot(df[name[i]], ax=ax)을 사용하면 해상 디스트로트를 특정 축 ax에 플롯 할 수 있습니다.