Python의 열 값별 색상 코딩 산점도
데이터 시각화에서 색상을 다양한 범주에 할당하면 명확성이 향상되고 패턴이 드러날 수 있습니다. 이 기능은 R용 ggplot2에서 쉽게 사용할 수 있지만 pandas 및 matplotlib를 사용하여 Python에서 동일한 기능을 어떻게 달성할 수 있습니까?
업데이트: Seaborn Enhancements
원래 답변 이후 , Seaborn은 유익하고 시각적으로 매력적인 플롯을 만들기 위한 강력한 라이브러리로 부상했습니다. 최근 업데이트는 열 값을 기반으로 산점도를 색칠하는 편리한 기능을 제공합니다:
Original Pandas 및 Matplotlib 접근 방식
Matplotlib를 사용하여 직접적인 접근 방식을 원하는 경우 색상을 할당하는 사용자 정의 기능이 있습니다. 범주형 열을 기준으로 포인트로:
import matplotlib.pyplot as plt
import pandas as pd
def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
fig, ax = plt.subplots()
categories = np.unique(df[catcol])
colors = np.linspace(0, 1, len(categories))
colordict = dict(zip(categories, colors))
df["Color"] = df[catcol].apply(lambda x: colordict[x])
ax.scatter(df[xcol], df[ycol], c=df["Color"])
return fig
이 함수는 고유한 범주 값에서 색상 사전을 생성하고 해당 색상을 데이터 포인트에 할당합니다. 그런 다음 색상으로 구분된 점으로 분산형 차트가 생성됩니다.
예
제공된 샘플 데이터 프레임 사용:
df = pd.DataFrame({'Height': np.append(np.random.normal(6, 0.25, size=5), np.random.normal(5.4, 0.25, size=5)),
'Weight': np.append(np.random.normal(180, 20, size=5), np.random.normal(140, 20, size=5)),
'Gender': ["Male", "Male", "Male", "Male", "Male",
"Female", "Female", "Female", "Female", "Female"]})
데이터프레임을 사용하여 dfScatter 함수 호출:
fig = dfScatter(df)
fig.savefig('color_coded_scatterplot.png')
포인트가 성별에 따라 색상이 지정되는 산점도를 생성합니다.
[성별에 따라 색상이 지정된 산점도 이미지]
Seaborn의 고급 기능과 사용자 정의 dfScatter 함수는 Python의 산점도에 색상 코딩을 추가하는 유연한 옵션을 제공하여 데이터 시각화를 더욱 유익하고 시각적으로 매력적으로 만듭니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3