ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/Python

[Python] ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ์„ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๐Ÿ“ˆ (4)

ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ 2022. 5. 30. 04:45

ใ€Š ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ใ€‹

 

[ ํŒŒ์ด ์ฐจํŠธ๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์˜ˆ์ œ ]

function Description Syntax Parameters
matplotlib.pyplot.pie() - ํŒŒ์ด ์ฐจํŠธ ์ƒ์„ฑ
- *x* ๋ฐฐ์—ด์˜ ์›ํ˜• ์ฐจํŠธ ์ƒ์„ฑ ๊ฐ ๋ถ€์ฑ„๊ผด
  ๋ฉด์ ์€ x/sum(x)๋กœ ์ฃผ์–ด์ง.
- ์๊ธฐ๋Š” x์ถ•์˜ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ํ”Œ๋กฏ
plt.pie(
    x,
    explode=None,
    labels=None,
    colors=None,
    autopct=None,
    pctdistance=0.6,
    shadow=False,
    labeldistance=1.1,
    startangle=0,
    radius=1,
    counterclock=True,
    wedgeprops=None,
    textprops=None,
    center=(0, 0),
    frame=False,
    rotatelabels=False,
    *,
    normalize=None,
    data=None,
)
x
- ๋ถ€์ฑ„๊ผด ํฌ๊ธฐ๋ฅผ ์ง€์ •
  (1D ์œ ์‚ฌ๋ฐฐ์—ด ํƒ€์ž…)

explode [๊ธฐ๋ณธ๊ฐ’ : None]
- ๋ถ€์ฑ„๊ผด์ด ํŒŒ์ด ์ฐจํŠธ์˜ ์ค‘์‹ฌ์—์„œ 
  ๋ฒ—์–ด๋‚˜๋Š” ์ •๋„๋ฅผ ์„ค์ •
  (์œ ์‚ฌ๋ฐฐ์—ด ํƒ€์ž… )

labels [๊ธฐ๋ณธ๊ฐ’ : None]
- ๊ฐ ๋ถ€์ฑ„๊ผด์˜ ๋ ˆ์ด๋ธ”์„ ์„ค์ • 

colors [๊ธฐ๋ณธ๊ฐ’ : None]
- ํŒŒ์ด ์ฐจํŠธ์˜ ๊ฐ ๋ถ€์ฑ„๊ผด์ด ์ง€๋‹ˆ๋Š”
  ์ผ๋ จ์˜ ์ƒ‰์ƒ์„ ์„ค์ • 
  (์œ ์‚ฌ๋ฐฐ์—ด ํƒ€์ž…)

autopct [๊ธฐ๋ณธ๊ฐ’ : None]
 - ๋ถ€์ฑ„๊ผด ๋ ˆ์ด๋ธ”์ด ํ‘œ์‹œ๋ 
   ํƒ€์ž…์˜ ํ˜•์‹์„ ์ง€์ • 
  (None || str || callable ํƒ€์ž… )

startangle [๊ธฐ๋ณธ๊ฐ’ : 0]
- ํŒŒ์ด์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์ด ํšŒ์ „ํ•˜๋Š” 
  x์ถ• ๊ฐ๋„ ์„ค์ •(๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ ์ด๋™)

 

โ‘  ์ง€์—ญ๋ณ„ ๋‚จ/๋…€ ์ธ๊ตฌ ๋ถ„ํฌ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ด์ฐจํŠธ๋กœ ์‹œ๊ฐํ™”

# ํŒŒ์ด ์ฐจํŠธ ์‚ฌ์šฉ ์˜ˆ์ œ 
import matplotlib.pyplot as plt

size = [2441, 2312, 1031, 1233]           # ํŒŒ์ด ์ฐจํŠธ์— ์‹œ๊ฐํ™”ํ•  ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
color = ['darkmagenta', 'deeppink', 'hotpink', 'pink']  # ๊ฐ ๋ ˆ์ด๋ธ”์˜ ์ƒ‰์ƒ ์„ค์ •
label = ['Aํ˜•','Bํ˜•','ABํ˜•', 'Oํ˜•']       # ๋ถ€์ฑ„๊ผด ์˜์—ญ์˜ ์ด๋ฆ„ ์„ค์ •

plt.axis('equal') # plt.axis() : ์ถ• ์†์„ฑ ์„ค์ •,  *equal* : ๋™์ผ ์Šค์ผ€์ผ๋ง ์„ค์ •(์›ํ˜• ์ƒํƒœ ์œ ์ง€)
plt.rc('font', family = 'Malgun Gothic')  # ์ฐจํŠธ ํฐํŠธ ์„ค์ •
plt.pie(size, labels = label, autopct = '%.1f%%', colors=color, explode = (0,0,0.1,0))
plt.legend() # ๋ฒ”๋ก€ ํ‘œ์‹œ
plt.show()

ํ˜ˆ์•กํ˜• ๋ณ„ ๋ถ„ํฌ๋„ ํ™•์ธ(ํŒŒ์ด ์ฐจํŠธ)

 

 

โ‘ก matplotlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” mcolors ์ƒ‰์ƒ ์ •๋ณด ํ™•์ธ ์˜ˆ์ œ

# matplotlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” mcolors์˜ ์ƒ‰์ƒ ์ •๋ณด ํ™•์ธ ์˜ˆ์ œ
import matplotlib.pyplot as plt
from matplotlib import colors as mcolors

colors = dict(mcolors.BASE_COLORS, **mcolors.CSS4_COLORS)

# Sort colors by hue, saturation, value and name.
by_hsv = sorted((tuple(mcolors.rgb_to_hsv(mcolors.to_rgba(color)[:3])), name)
                for name, color in colors.items())
sorted_names = [name for hsv, name in by_hsv]

n = len(sorted_names)
ncols = 4
nrows = n // ncols

fig, ax = plt.subplots(figsize=(9, 8), dpi = 300)

# Get height and width
X, Y = fig.get_dpi() * fig.get_size_inches()
h = Y / (nrows + 1)
w = X / ncols

for i, name in enumerate(sorted_names):
    row = i % nrows
    col = i // nrows
    y = Y - (row * h) - h

    xi_line = w * (col + 0.05)
    xf_line = w * (col + 0.25)
    xi_text = w * (col + 0.3)

    ax.text(xi_text, y, name, fontsize=(10),
            horizontalalignment='left',
            verticalalignment='center')

    ax.hlines(y + h * 0.1, xi_line, xf_line,
              color=colors[name], linewidth=(6))

ax.set_xlim(0, X)
ax.set_ylim(0, Y)
ax.set_axis_off()

fig.subplots_adjust(left=0, right=1,
                    top=1, bottom=0,
                    hspace=0, wspace=0)
plt.show()

matplotlib์—์„œ ์ง€์›ํ•˜๋Š” mcolors ๋ชฉ๋ก

 

 

โ‘ข ํŠน์ • ์ง€์—ญ์˜ ๋‚จ/๋…€ ์„ฑ๋น„ ํŒŒ์ด ์ฐจํŠธ๋ฅผ ํ†ตํ•œ ์‹œ๊ฐํ™” ์˜ˆ์ œ

# ์ง€์—ญ์˜ ์ด๋ฆ„์„ ์ „๋‹ฌ๋ฐ›์•„ ๋‚จ๋…€์˜ ์„ฑ๋น„๋ฅผ pie chart๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ์˜ˆ์ œ
import csv
import matplotlib.pyplot as plt

f = open('gender.csv')
data = csv.reader(f)
size = []

name = input('์ฐพ๊ณ  ์‹ถ์€ ์ง€์—ญ์˜ ์ด๋ฆ„์„ ์•Œ๋ ค์ฃผ์„ธ์š” : ')
for row in data :
    if name in row[0] :
        m = 0  # ์ง€์—ญ๋ณ„ ์ด ๋‚จ์„ฑ ์ธ๊ตฌ๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜
        f = 0  # ์ง€์—ญ๋ณ„ ์ด ์—ฌ์„ฑ ์ธ๊ตฌ๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜
        for i in range(101) :
            m += int(row[i+3])   # ์ง€์—ญ๋ณ„ ๋‚จ์„ฑ์˜ 0~100์„ธ ์ธ๊ตฌ ๋ฐ์ดํ„ฐ์˜ ํ•ฉ์„ m์— ์ €์žฅ
            f += int(row[i+106]) # ์ง€์—ญ๋ณ„ ์—ฌ์„ฑ์˜ 0~100์„ธ ์ธ๊ตฌ ๋ฐ์ดํ„ฐ์˜ ํ•ฉ์„ f์— ์ €์žฅ 
        break
        
# ํŠน์ • ์ง€์—ญ์˜ ๋‚จ์„ฑ ์ด ์ธ๊ตฌ๋ฅผ size[0], ์—ฌ์„ฑ ์ด ์ธ๊ตฌ๋ฅผ size[1] ๋ฆฌ์ŠคํŠธ์— ์‚ฝ์ž…
size.append(m)
size.append(f)

plt.rc('font', family ='Malgun Gothic') # ํฐํŠธ ์ง€์ •
color = ['crimson', 'darkcyan']         # ์ƒ‰์ƒ ์ง€์ •
plt.axis('equal')                       # ์ถ• ์ง€์ •
# ํŒŒ์ด ์ฐจํŠธ ์‹œ์ž‘ ๋ถ€๋ถ„์ด ํšŒ์ „ํ•˜๋Š” ์ถ• ์ง€์ •(๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ ์ด๋™) [default : 0(3์‹œ ๋ฐฉํ–ฅ)]
plt.pie(size, labels = ['๋‚จ','์—ฌ'], autopct ='%.1f%%', colors = color, startangle = 90)
plt.title(name + ' ์ง€์—ญ์˜ ๋‚จ๋…€ ์„ฑ๋ณ„ ๋น„์œจ')
plt.show()

############ [์‹คํ–‰ ๊ฒฐ๊ณผ] ############
์ฐพ๊ณ  ์‹ถ์€ ์ง€์—ญ์˜ ์ด๋ฆ„์„ ์•Œ๋ ค์ฃผ์„ธ์š” : ์ œ์ฃผํŠน๋ณ„์ž์น˜๋„

์ œ์ฃผํŠน๋ณ„์ž์น˜๋„ ๋‚จ/๋…€ ์„ฑ๋ณ„ ๋น„์œจ ์‹œ๊ฐํ™”

 

 

 

โ‘ฃ ๊บพ์€์„  ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ๋ถ€ ์š”์†Œ ๋น„๊ต ์˜ˆ์ œ

# ํŠน์ • ์ง€์—ญ์˜ ์—ฐ๋ น๋ณ„ ๋‚จ/๋…€ ์„ฑ๋ณ„ ๋น„์œจ ๊บพ์€์„  ๊ทธ๋ž˜ํ”„๋ฅผ ํ™œ์šฉํ•ด ์‹œ๊ฐํ™”
import csv
import matplotlib.pyplot as plt

f = open('gender.csv')
data = csv.reader(f)
m = []
f = []

name = input('๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ')
for row in data :
    if name in row[0] :
        for i in range(3,104) : 
            m.append(int(row[i]))
            f.append(int(row[i+103]))        
        break

plt.style.use('seaborn')
plt.rc('font', family = 'Malgun Gothic')
plt.plot(m, label = 'Male')
plt.plot(f, label = 'Female')
plt.legend()
plt.title(name + ' ์ง€์—ญ์˜ ๋‚จ๋…€ ์„ฑ๋ณ„ ๋น„์œจ')
#plt.figure(figsize=(6, 8), dpi=300)
plt.show()

############ [์‹คํ–‰ ๊ฒฐ๊ณผ] ############
๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ์ œ์ฃผํŠน๋ณ„์ž์น˜๋„

๊บพ์€์„  ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•œ ์ง€์—ญ๋ณ„ ๋‚จ/๋…€ ์—ฐ๋ น๋ณ„ ์ธ๊ตฌ ์ฐจํŠธ

 

 

โ‘ค ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ๋ถ€ ์š”์†Œ ๋น„๊ต ์˜ˆ์ œ

# ์ง€์—ญ๋ณ„ ๋‚จ๋…€ ์ธ๊ตฌ ์ฐจ์ด ์‹œ๊ฐํ™”๋ฅผ ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„๋ฅผ ํ™œ์šฉ
import csv
import matplotlib.pyplot as plt

f = open('gender.csv')
data = csv.reader(f)
result = []

name = input('๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ')
for row in data :
    if name in row[0] :
        for i in range(3,104) : 
            # ๊ฐ ์—ฐ๋ น๋ณ„ ๋‚จ์„ฑ ๋ฐ์ดํ„ฐ - ์—ฌ์„ฑ ๋ฐ์ดํ„ฐ์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•จ์œผ๋กœ
            # ์–‘์ˆ˜ ๊ฐ’ : ์—ฌ์„ฑ์— ๋น„ํ•ด ๋‚จ์„ฑ์˜ ์ธ๊ตฌ๊ฐ€ ์ ˆ๋Œ€๊ฐ’ ๋งŒํผ ๋งŽ๋‹ค๋Š” ๊ฒฐ๊ณผ ๋„์ถœ,
            # ์Œ์ˆ˜ ๊ฐ’ : ๋‚จ์„ฑ์— ๋น„ํ•ด ์—ฌ์„ฑ์˜ ์ธ๊ตฌ๊ฐ€ ์ ˆ๋Œ€๊ฐ’ ๋งŒํผ ๋งŽ๋‹ค๋Š” ๊ฒฐ๊ณผ ๋„์ถœ
            result.append(int(row[i]) - int(row[i+103]))
        break

plt.rcParams['axes.unicode_minus'] = False
plt.rc('font', family = 'Malgun Gothic')
plt.title(name + ' ์ง€์—ญ์˜ ๋‚จ๋…€ ์„ฑ๋ณ„ ๋น„์œจ')
plt.bar(range(101), result)
plt.show()

############ [์‹คํ–‰ ๊ฒฐ๊ณผ] ############
๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ์ œ์ฃผํŠน๋ณ„์ž์น˜๋„

๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•œ ์ง€์—ญ๋ณ„ ๋‚จ/๋…€ ์—ฐ๋ น๋ณ„ ์ธ๊ตฌ ์ฐจํŠธ

 

 

๋ฐ์ดํ„ฐ์˜ ๋น„๊ต ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฐจํŠธ๋ฅผ ํ™œ์šฉ

์ด ์ธ๊ตฌ์ˆ˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•  ๋•Œ ์‹œ๊ฐ์ ์œผ๋กœ ํŒŒ์ด์ฐจํŠธ๊ฐ€ ํŽธ๋ฆฌํ•˜์ง€๋งŒ

๋‚จ/๋…€ ์—ฐ๋ น๋ณ„ ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์€ ์„ธ๋ถ„ํ™”๋œ ์ง€ํ‘œ๋ฅผ ๋น„๊ตํ•  ์‹œ ๊บพ์€์„  ๊ทธ๋ž˜ํ”„, ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„ ๋“ฑ์ด ์šฉ์ดํ•จ

 

 

 

 

[ ์‚ฐ์ ๋„ ์ฐจํŠธ๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์˜ˆ์ œ ]

function Description Syntax Parameters
matplot.lib.pyplot.scatter() - ๋‹ค์–‘ํ•œ ๋งˆ์ปค ํฌ๊ธฐ ๋ฐ ์ƒ‰์ƒ์„ ๊ฐ€์ง„
   y ๋Œ€ x์˜ ์‚ฐ์ ๋„ ๊ทธ๋ž˜ํ”„ ์ƒ์„ฑ
- ๋ฐ์ดํ„ฐ๊ฐ„ ์ƒ๊ด€ ๊ด€๊ณ„ ํŒŒ์•…์— ์šฉ์ด
- ์‚ฐ์ ๋„ ๊ทธ๋ž˜ํ”„์˜ ๋งˆ์ปค ํฌ๊ธฐ๋ฅผ
  ์กฐ์ ˆํ•œ ์ฐจํŠธ๋ฅผ ๋ฒ„๋ธ” ์ฐจํŠธ๋ผ ํ•จ
plt.scatter(
    x,
    y,
    s=None,
    c=None,
    marker=None,
    cmap=None,
    norm=None,
    vmin=None,
    vmax=None,
    alpha=None,
    linewidths=None,
    *,
    edgecolors=None,
    plotnonfinite=False,
    data=None,
    **kwargs,
)
x, y
- ๋ฐ์ดํ„ฐ ์œ„์น˜ ํ‘œ์‹œ
  (์‹ค์ˆ˜ || ์œ ์‚ฌ๋ฐฐ์—ด ํƒ€์ž…)

s [๊ธฐ๋ณธ๊ฐ’ : None]
- ๋งˆ์ปค์˜ ํฌ๊ธฐ ์ง€์ •
  (์‹ค์ˆ˜ || ์œ ์‚ฌ๋ฐฐ์—ด ํƒ€์ž…)

c [๊ธฐ๋ณธ๊ฐ’ : None]
- ๋งˆ์ปค ์ƒ‰์ƒ ์ง€์ •
  (์œ ์‚ฌ๋ฐฐ์—ด || ์ƒ‰์ƒ๋ชฉ๋ก)

marker 
- ๋งˆ์ปค ์Šคํƒ€์ผ ์ง€์ •

cmap [๊ธฐ๋ณธ๊ฐ’ : rc:`image.cmap`]
 - colormap ์ธ์Šคํ„ด์Šค ๋˜๋Š” ๋“ฑ๋ก๋œ
   colormap ์ด๋ฆ„์„ ํ†ตํ•ด ์„ค์ •
 - c๊ฐ€ ์‹ค์ˆ˜ํ˜• ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ ๊ฐ€๋Šฅ
(str || `~matplotlib.colors.Colormap` ํƒ€์ž…)

alpha [๊ธฐ๋ณธ๊ฐ’ : 0]
- ๋งˆ์ปค์˜ ํˆฌ๋ช…๋„ ์ง€์ •

 

 

โ‘  ์‚ฐ์ ๋„ ๊ทธ๋ž˜ํ”„ ์‚ฌ์šฉ ์˜ˆ์ œ 

import matplotlib.pyplot as plt

plt.style.use('ggplot')
# x, y : ๋ฐ์ดํ„ฐ ์œ„์น˜ ํ‘œ์‹œ
x = [1, 2, 3, 4]
y = [10, 30, 20, 40]

# s : ๋งˆ์ปค์˜ ํฌ๊ธฐ ์ง€์ • (points**2)
size = [100, 300, 200, 400]

# c : ๋งˆ์ปค์˜ ์ƒ‰์ƒ ์ง€์ • 
colors = ['red','blue','green','gold']

plt.scatter(x, y, s = size, c = colors)
plt.colorbar()
plt.show()

์‚ฐ์ ๋„ ๋ถ„ํฌ ์˜ˆ์ œ

 

 

โ‘ก ํŠน์ • ์ง€์—ญ์— ๋Œ€ํ•œ  ์ธ๊ตฌ ์‚ฐํฌ๋„ ์‹œ๊ฐํ™” ์˜ˆ์ œ (1)

import csv
import matplotlib.pyplot as plt

f = open('gender.csv')
data = csv.reader(f)
m = []
f = []

name = input('๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ')
for row in data :
    if name in row[0] :
        for i in range(3,104) : 
            m.append(int(row[i]))
            f.append(int(row[i+103]))
        break

plt.style.use('ggplot')
# ๋งˆ์ปค์˜ ์ƒ‰์ƒ ๋ฒ”์œ„ ์ง€์ • ํ›„ colormap์„ ์ ์šฉ ์‹œํ‚ค๋ฉด 
# ์—ฐ๋ น๋ณ„ ์ธ๊ตฌ ๋ถ„ํฌ ์ •๋„๋ฅผ ์ธก์ •ํ•˜๊ธฐ ์šฉ์ด
plt.scatter(x=m, y=f, c=range(101), alpha=0.7, cmap='Accent', marker='x')
plt.colorbar()
# ์ถ”์„ธ์„ ์„ ๊ธฐ์ค€์œผ๋กœ y์ถ•์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ์—ฌ์„ฑ์˜ ์ธ๊ตฌ๊ฐ€ ๋งŽ๊ณ ,
# x์ถ•์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๋‚จ์„ฑ์˜ ์ธ๊ตฌ๊ฐ€ ๋งŽ์€ ๊ฒƒ์„ ํ™•์ธ ๊ฐ€๋Šฅ 
plt.plot(range(max(m)), range(max(m)), color='black', alpha=0.2) # ์ถ”์„ธ์„ (๊ธฐ์ค€์ด ๋˜๋Š” ์„ ) ์ถ”๊ฐ€ 
plt.show()

############ [์‹คํ–‰ ๊ฒฐ๊ณผ] ############
๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ์ œ์ฃผํŠน๋ณ„์ž์น˜๋„

์‚ฐ์ ๋„ ๋ถ„ํฌ ์ •๋„๋ฅผ ์ถ”์„ธ์„ ์„ ํ™œ์šฉํ•˜์—ฌ ํ™•์ธ

 

 

โ‘ข ํŠน์ • ์ง€์—ญ์— ๋Œ€ํ•œ  ์ธ๊ตฌ ์‚ฐํฌ๋„ ์‹œ๊ฐํ™” ์˜ˆ์ œ (2)

import csv
import math
import matplotlib.pyplot as plt

f = open('gender.csv')
data = csv.reader(f)
m = []
f = []
size = []

name = input('๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ')
for row in data :
    if name in row[0] :
        for i in range(3,104) : 
            m.append(int(row[i]))
            f.append(int(row[i+103]))
            size.append(math.sqrt(int(row[i]) + int(row[i+103])))
        break

plt.style.use('ggplot')
plt.rc('font',family='Malgun Gothic')
plt.figure(figsize = (10,5), dpi=300)            
plt.title(name+' ์ง€์—ญ์˜ ์„ฑ๋ณ„ ์ธ๊ตฌ ๊ทธ๋ž˜ํ”„')
plt.scatter(m, f, s = size, c = range(101), alpha=0.5, cmap='jet')
plt.colorbar()
plt.plot(range(max(m)),range(max(m)), 'g')
plt.xlabel('๋‚จ์„ฑ ์ธ๊ตฌ ์ˆ˜')
plt.ylabel('์—ฌ์„ฑ ์ธ๊ตฌ ์ˆ˜')
plt.show()

############ [์‹คํ–‰ ๊ฒฐ๊ณผ] ############
๊ถ๊ธˆํ•œ ๋™๋„ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ์ œ์ฃผํŠน๋ณ„์ž์น˜๋„

ํŠน์ • ์ง€์—ญ์˜ ์„ฑ๋ณ„ ์ธ๊ตฌ ๊ทธ๋ž˜ํ”„ ํ™•์ธ