데이터 시각화2

2024. 11. 6. 22:37python study/sw와 ai 데이터 분석

Bar 차트 그리기

Bar사용하기

  • plt.bar(데이터, 속성): 데이터는 x축, y축에 표시할 데이터를 넣어준다.
import matplotlib.pyplot as plt

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

plt.bar(도시, 출생아수)
plt.bar(도시, 혼인건수)
plt.show()

Bar차트 속성

  • label="범례이름": 범례이름을 차트내에 지정해 준다.
  • plt.legned(): label값을 표시해 준다. 
import matplotlib.pyplot as plt

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

plt.bar(도시, 출생아수,label='출생아수')
plt.bar(도시, 혼인건수,label='혼인건수')
plt.legend()
plt.show()

  • color="색상": 색상을 지정해 준다. rgb값을 활용하여서 색상 지정도 가능하다.
import matplotlib.pyplot as plt

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

plt.bar(도시, 출생아수,label='출생아수', color='lightblue') #색상 이름
plt.bar(도시, 혼인건수,label='혼인건수',color='#C27CDF') #rgb값
plt.legend()
plt.show()

  • alpha=실수(0~1): 0~1 사이의 실수를 활용하여서 투명도를 지정해 준다.
import matplotlib.pyplot as plt

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

plt.bar(도시, 출생아수,label='출생아수', color='blue',alpha=0.3) #투명도가 0.3인 블루
plt.bar(도시, 혼인건수,label='혼인건수',color='blue',alpha=1) #투명도가 1인 블루
plt.legend()
plt.show()

  • width="실수"(0~1): 0에서 1 사이의 실수로 너비를 지정해 준다.
import matplotlib.pyplot as plt

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

plt.bar(도시, 출생아수,label='출생아수', color='lightblue',width=0.3)
plt.bar(도시, 혼인건수,label='혼인건수',color='lightgreen', width=0.5)
plt.legend()
plt.show()

두 개의 차트를 양 옆에 그리기(수직)

  • plt.xticks를 활용하면 x축을 고정으로 설정해 줄 수 있다.
import matplotlib.pyplot as plt
import numpy as np

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

pos=np.arange(len(도시))
plt.xticks(pos, 도시)

plt.show()

x축에 각각의 데이터를 출력

  • 그리고 plt.bar(x축, y축)을 각각 입력을 해주는 데 pos를 기준으로 -0.15, +0.15를 해준다.(width는 0.2 정도)
import matplotlib.pyplot as plt
import numpy as np

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

pos=np.arange(len(도시))
plt.xticks(pos, 도시)

plt.bar(pos-0.15, 출생아수,label='출생아수', color='lightblue',width=0.2)
plt.bar(pos+0.15, 혼인건수,label='혼인건수',color='lightgreen', width=0.2)
plt.legend()
plt.show()

두 개의 차트를 양 옆에 그리기(수평)

  • 위의 코드와 비슷하지만 몇 가지점만 다르게 해 주면 된다.
1. xticks를 yticks로 변경
2. bar를 barh로 변경
3.width를 height로 변경 
4. 위의 코드에는 없지만 xlabel의 값과 ylabel의 이름을 변경
import matplotlib.pyplot as plt
import numpy as np

도시 = ['부산', '대구','인천','광주','대전']
출생아수 = [14446, 10661, 14947, 7956, 7414]
혼인건수 = [11081, 7287, 10881, 4901, 5419]

pos=np.arange(len(도시))
plt.yticks(pos, 도시) #xticks->yticks

plt.barh(pos-0.15, 출생아수,label='출생아수', color='lightblue',height=0.2) #bar->bar, width->height
plt.barh(pos+0.15, 혼인건수,label='혼인건수',color='lightgreen', height=0.2)

plt.legend()
plt.show()

pie 차트 그리기

pie 사용하기

  • plt.pie(데이터, 속성): 파이차트를 만들어주는 기본적인 틀이다.
  • 여기서 조심할 부분은 레이블을 지정할 때 labels로 해주어야 한다.
도시 = ['부산', '대구','인천','광주','대전']
혼인건수 = [11081, 7287, 10881, 4901, 5419]
plt.pie(혼인건수, labels=도시)

Pie차트 속성

  • autopct=". xf": x자리까지 표현
  • autopct="% d": 정수로 표현
import matplotlib.pyplot as plt
도시 = ['부산', '대구','인천','광주','대전']
혼인건수 = [11081, 7287, 10881, 4901, 5419]
plt.pie(혼인건수, labels=도시,autopct='%.2f' )

  • colors=[]: 색상들을 리스트 형식으로 지정해 준다.
import matplotlib.pyplot as plt
도시 = ['부산', '대구','인천','광주','대전']
혼인건수 = [11081, 7287, 10881, 4901, 5419]
plt.pie(혼인건수, labels=도시,autopct='%.2f', colors=['yellow','lightblue','red','green','orange'])
plt.show()

  • explode=[x, y, z,...]: 강조하고자 하는 데이터를  0~1 사이의 실수를 활용하여서 지정해 준다. 리스트 형식으로 하여서 강조할 값들을 넣어준다.
#2021년 5대광역시 혼인건수
import matplotlib.pyplot as plt
도시 = ['부산', '대구','인천','광주','대전']
혼인건수 = [11081, 7287, 10881, 4901, 5419]
plt.pie(혼인건수, labels=도시,autopct='%.2f', explode=[0.1,0,0,0,0])
plt.show()

scatter 차트 그리기

scatter사용하기

  • plt.scatter(x, y): x, y축에 해당하는 데이터를 표시해 준다.
import random
x=list(range(10))
y=[random.randint(1,100) for b in x]

plt.scatter(x,y)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

scatter 차트 속성

  • c='색상': 점들의 색상을 지정해 준다.
import random
x=list(range(10))
y=[random.randint(1,100) for b in x]
print(x)
print(y)

plt.scatter(x,y,c='red')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

  • s=크기: s=30을 기준으로 하여서 크기에 변화를 줄 수 있다.
import random
x=list(range(10))
y=[random.randint(1,100) for b in x]
print(x)
print(y)

plt.scatter(x,y,s=50)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

  • s=크기를 지정해 줄 때 리스트 형식으로 지정해줄 수도 있다.
import random
x=list(range(10))
y=[random.randint(1,100) for b in x]

ss=[n**2 for n in range(10)] #n의 제곱수 만큼 지정해줌
plt.scatter(x,y,c='red',s=ss)
plt.show()

'python study > sw와 ai 데이터 분석' 카테고리의 다른 글

WordCloud 더 나아가기  (0) 2024.11.07
WorldCloud 시각화분석  (1) 2024.11.07
넘파이 활용하기  (0) 2024.11.04
numpy이해와 자료구조  (0) 2024.11.04
데이터 시각화란?  (0) 2024.11.03