728x90
방사형 그래프는 특정 대상-주요 변수의 상대적인 관계를 나타낼 때 주로 사용한다.
import matplotlib.pyplot as plt
import pandas as pd
from math import pi
if __name__ == '__main__':
plt.rcParams['font.family'] = 'NanumGothic'
df = pd.DataFrame({'group': ['A', 'B', 'C', 'D'],
'공격': [99, 90, 34, 55],
'수비': [20, 50, 84, 80],
'패스': [50, 60, 99, 93],
'슛팅': [99, 70, 88, 85],
'드리블': [87, 85, 75, 40],
})
print(df)
categories = list(df)[1:]
N = len(categories)
angles = [n / float(N) * 2 * pi for n in range(N)]
angles += angles[:1]
rader = plt.subplot(111, polar=True)
rader.set_theta_offset(pi / 2)
rader.set_theta_direction(-1)
plt.xticks(angles[:-1], categories)
rader.set_rlabel_position(0)
plt.yticks([20, 40, 60, 80, 100], ['20', '40', '60', '80', '100'], color='grey', size=7)
values = df.loc[0].drop('group').values.flatten().tolist()
values += values[:1]
rader.plot(angles, values, linewidth=1, linestyle='solid', label='group A')
rader.fill(angles, values, 'b', alpha=0.1)
values = df.loc[1].drop('group').values.flatten().tolist()
values += values[:1]
rader.plot(angles, values, linewidth=1, linestyle='solid', label='group B')
rader.fill(angles, values, 'r', alpha=0.1)
values = df.loc[2].drop('group').values.flatten().tolist()
values += values[:1]
rader.plot(angles, values, linewidth=1, linestyle='solid', label='group C')
rader.fill(angles, values, 'y', alpha=0.1)
plt.legend(loc='upper right', bbox_to_anchor=(0.1, 0.1))
plt.show()
결과 값
group 공격 드리블 수비 슛팅 패스
0 A 99 87 20 99 50
1 B 90 85 50 70 60
2 C 34 75 84 88 99
3 D 55 40 80 85 93

728x90
'Data Science > Data Visualization' 카테고리의 다른 글
[05. Etcetera Chart] 007. Word Cloud Chart (0) | 2021.10.06 |
---|---|
[05. Etcetera Chart] 006. Funnel Plot (0) | 2021.10.06 |
[05. Etcetera Chart] 004. Bubble Chart (0) | 2021.09.06 |
[05. Etcetera Chart] 003. Histogram (0) | 2021.09.06 |
[05. Etcetera Chart] 002. Scatter Plot (0) | 2021.09.06 |