책 「pandas 라이브러리 활용 입문」3.4.3.2의 작도

4012 단어 pandasseaborn

소개



서적 「pandas 라이브러리 활용 입문」 의 「3.4.3.2 사이즈와 형태」로 나오는 seaborn 에 의한 플롯으로 에러가 되는 부분이 있었으므로 메모합니다.

여기서는 첫 번째 그림을 설명합니다. 두 번째도 다른 이유로 작동하지 않았기 때문에 여기 에 기사를 만들었습니다.

운영 환경
* Python 3.7
* seaborn 0.11.1
* matplotlib 3.2.2 (Colab)/matplotlib 3.4.2 (local PC)

현상



데이터의 size 열의 값에 의해 산점도의 마커 사이즈를 구분하는 그림입니다. 아래와 같은 코드가 표시됩니다.
import seaborn as sns
from matplotlib import pyplot as plt

tips = sns.load_dataset('tips')
sns.lmplot(
    data=tips,
    x='total_bill',
    y='tip',
    fit_reg=False,
    hue='sex',
    scatter_kws={'s': tips['size'] * 10}
)
plt.show()

그러나 이것을 실행하면 ValueError가 되어 버립니다.

ValueError: s must be a scalar, or float array-like with the same size as x and y

StackOverflow에서 질문했는데, 이러한 사용법은 원래 상정되지 않았다(우리가 움직이고 있던 것이 버전 업으로 검증 처리가 들어가 동작하지 않게 되었다)라는 것.

해결책



이러한 경우는 lmplot 는 아니고 scatterplot 를 사용하는 것이 솔직하게 쓸 수 있습니다. (응답자 감사합니다.)
sns.scatterplot(
    data=tips,
    x='total_bill',
    y='tip',
    hue='sex',
    s=tips['size'].mul(20),
    # size='size',  # s または size のいずれかを指定
)

좋은 웹페이지 즐겨찾기