>

일부 빠른로드 기능 :

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
di = sns.load_dataset('iris')

여기서 예제 조리개 데이터 사용. 다음과 같이 쉽게 산점도를 만듭니다.

sns.scatterplot(x=di['sepal_length'], y=di['sepal_width'], 
            hue=di['species']);

그러나 lmplot을 사용하면 TypeError가 발생하고 데이터 인수가 필요합니다. 데이터 인수가 충족되면 여전히 작동하지 않습니다.

sns.lmplot(x=di['sepal_length'], y=di['sepal_width'], 
            hue=di['species'], data=di);
TypeError: '<' not supported between instances of 'str' and 'float'

그러나 이것은 잘 작동합니다 :

sns.lmplot(x='sepal_length', y='sepal_width', hue='species', data=di);

API 참조 를 읽은 후 lmplot에 데이터 인수가 필요하지만 scatterplot이 있음을 알 수 있습니다. 하지 않습니다. 여기 후드 아래에 다른 일이 있습니까? 여기 구문에 대한 모범 사례는 무엇입니까?

  • 답변 # 1

    코드가 작동하지 않는 이유는 data 의 오용 때문입니다  논의. 어디 data   x 가 전달되었습니다. y  그리고 hue   data 에 전달 된 오브젝트를 색인화 할 오브젝트로 처리됩니다. __getitem__ 를 사용하여  방법. 예를 들어 x='sepal_length', y='sepal_width', data=di   x=di['sepal_length'], y=di['sepal_width'] 와 같습니다

    따라서 다음과 같이 실행됩니다 :

    sns.lmplot(x='sepal_length', y='sepal_width', hue='species', data=di);
    
    

    당신이하려고 한 것은 기본적으로 x=di[di['sepal_length']], y=di[di['sepal_width']], hue=di[di['species']] 와 동일했습니다. .

    scatterplot 의 차이점에 대한 질문의 두 번째 부분으로 돌아 가기  그리고 lmplot :

    scatterplot   Axes 입니다 레벨 기능;그것은 matplotlib 에만 의존 Axes  플로팅시 lists 와 같은 다양한 콜렉션 유형으로 작업 할 수있는 오브젝트  그리고 np.ndarrays . 기능적으로는 다소 pyplot.scatter 와 같습니다.  몇 가지 기본 색상이 있습니다.

    한편, lmplot   sns.FacetGrid 에 의존  (여기에서 사용 가능한 문서). 와이즈 비즈  순전히 FacetGrid 입니다   sns 가 필요한 객체  건설 될 때. 따라서 pd.DataFrame 의 경우  일을하려면,필수 lmplot 를 가져 가라 .

    pd.DataFrame

  • 이전 android - 3 x 3 항목 가로 스크롤이있는 RecyclerView
  • 다음 c# - net 코어 - unitest 프로젝트의 nuget pack은 "조립품이 'lib'폴더 안에 있지 않습니다"라는 경고를 표시합니다