inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

공공데이터로 파이썬 데이터 분석 시작하기

[4/10] countplot, scatterplot, jointplot 으로 시각화 해보기

시군구명으로 그린 그래프에서도 숫자를 표시하고 싶습니다.

507

엠엠

작성한 질문수 18

1

시군구명으로 그린 그래프에서도 숫자를 표시하고 싶습니다.

그래서 브랜드명으로 그려봤는데, 잘 되지 않네요.

# 시군구명으로 빈도수를 세고 브랜드명으로 색상을 다르게 표현하는 countplot 을 그립니다.
plt.figure(figsize=(15,4))

city_count = df_31["시군구명"].value_counts()
g = sns.countplot(data=df_31, x="시군구명", hue="브랜드명")

for i, val in enumerate(city_count.index):
  g.text(x=i, y=city_count[i], s = city_count[i])

pandas python numpy

답변 1

0

박조은

안녕하세요.

질문 주신내용은 value_counts로는 값을 구할 수가 없습니다.

다음의 방법으로 해결해 보실 수 있습니다.

아래 코드를 실습코드에 추가해 두었으니 다음링크에서 코드를 직접 보실 수 있습니다. https://bit.ly/open-data-03-franchise-output


# 위 그래프에도 숫자를 표시하고 싶다면 그룹화된 연산이 필요합니다.
# value_counts는 Series에만 사용이 가능하기 때문에 groupby 나 pivot_table로 구해볼 수 있습니다. table_city_brand = df_31.pivot_table(index="시군구명", columns="브랜드명", values="상호명", aggfunc="count") table_city_brand.head()
Out[34]:
브랜드명 던킨도너츠 배스킨라빈스
시군구명
강남구 29 38
강동구 3 15
강북구 4 8
강서구 12 24
관악구 5 13
In [35]:
# 그래프에 숫자를 표시하기 위해서는 하나씩 출력을 해봅니다.
# 데이터프레임을 순회할 수있는 iterrows() 을 사용해 보겠습니다.
# 아래에 출력되는 숫자를 그래프에 표시할 예정입니다.
for i, val in table_city_brand.iterrows():
    dunkin = val["던킨도너츠"]
    baskin = val["배스킨라빈스"]
    print(dunkin, baskin)
29 38
3 15
4 8
12 24
5 13
9 24
4 17
1 8
14 28
1 12
7 11
6 12
7 18
5 22
14 39
2 11
6 23
8 22
6 18
5 16
10 19
9 28
6 9
14 14
4 15
In [36]:
plt.figure(figsize=(15, 4))
# 위에서 만든 피봇테이블과 "시군구명"의 순서과 같게 표시되게 하기 위해 order 값을 지정합니다.
g = sns.countplot(data=df_31, x="시군구명", hue="브랜드명", order=table_city_brand.index)

# 여기에서 i 값은 시군구명이라 숫자로 표현해줄 필요가 있습니다.
# 그래서 순서대로 0번부터 찍어줄 수 있도록 index_no 를 만들어 주고 for문을 순회할 때마다 하나씩 증가시킵니다.
index_no = 0
for i, val in table_city_brand.iterrows():
    dunkin = val["던킨도너츠"]
    baskin = val["배스킨라빈스"]
    g.text(x=index_no, y=dunkin, s=dunkin)
    g.text(x=index_no, y=baskin, s=baskin)
    index_no = index_no + 1

패키지 설치 에러 ydata-profiling

0

120

2

자세한 설명 부탁드려요 ㅜ

0

176

2

seaborn 라이브러리 호출하였으나 그래프가 안 그려져요

0

287

2

value_counts와 count 차이

0

342

2

안녕하세요 데이터 최신과 관련해서 문의드립니다.

0

205

3

scatterplot질문

0

122

1

강의 화면이 안나옵니다

0

164

2

4분12초 2013년부터 데이터가 없으면 어떻게하나요?..

0

188

2

에러 메시지

1

303

2

그래프 색이 동일하게 나옵니다.

0

308

2

시각화 라이브러리 비교

0

382

2

주피터 노트북 설치

0

390

1

2. 상가 기술통계 아웃풋 자료에서 오류가 납니다

0

226

1

14. distplot g = sns.FacetGrid(df_last, row="지역명", height=1.7, aspect=4) g.map(sns.distplot, "평당분양가격", hist=False, rug=True); 오류

0

178

1

group by agg function failed 에러

0

687

2

빈도수가 1000개 이상인 데이터를 따로 담을 때 코드 질문 있습니다.

0

288

2

주피터 노트북 실행 했는데 앞에 *가 생기고 결과가 나오지 않아요

0

363

3

get_string함수에서 문자 'nan'

0

200

1

seaborn X축 시작 지점 조정 질의의 건

0

213

1

14강 distplot 질의

0

289

1

nbextension 설치 및 셋팅 후 적용이 안되는 이슈

0

478

1

corr = df.corr() 입력시 오류

1

373

1

keyword grid_b is not recognized

0

336

1

%ls data 매직커맨드 사용시 한글 깨짐

0

293

1