ํ•˜๋ฃจ๊ณต๋ถ€

์ œ 14์žฅ ๐Ÿ“’๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”_matplotlib๐Ÿ“’

ํ‚ด๋ฐ”๋‹ค 2022. 10. 30. 22:44

๐Ÿงท Matplotlib

  • ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™˜๊ฒฝ์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ํ•˜์œ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ 'pyplot'์„ ํ†ตํ•ด ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ
  • plotly, seaborn ๋“ฑ๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ตœ๊ทผ ๊ฒฝ์Ÿ๋ ฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Œ
  • pandas ๊ฐ์ฒด์˜ ๊ธฐ๋ณธ์ ์ธ ์‹œ๊ฐํ™” ๋„๊ตฌ
  • plot() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”
  • ์ข…๋ฅ˜
    • ๋ผ์ธ ํ”Œ๋กฏ(line plot)
    • ๋ฐ” ์ฐจํŠธ(bar chart)
    • ํžˆ์Šคํ† ๊ทธ๋žจ(histogram)
    • ๋ฐ•์Šค ํ”Œ๋กฏ(box plot)
    • ์Šค์บํ„ฐ ํ”Œ๋กฏ(scatter plot)

- ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ

โœ… import matplotlib.pyplot as plt 

โœ…  cmd: pip install matplotlib

 

 

plt.plot(y)

  • ๊ธฐ๋ณธ : ๋ผ์ธ ํ”Œ๋กฏ(line plot)
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œ๊ฐ„, ์ˆœ์„œ ๋“ฑ์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ํ๋ฆ„ ํŒŒ์•…
  • x๊ฐ€ ์ฃผ์–ด์ง€์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ž๋™ ์ƒ์„ฑ :x = range(len(y))

-๋ฐ์ดํ„ฐ ์ƒ์„ฑ : ()๊ฐœ์˜ ์•„์ดํ…œ์„ ๊ฐ€์ง€๋Š” ๋ฆฌ์ŠคํŠธ
- plot(data) : ๊ธฐ๋ณธ์ ์œผ๋กœ y์ถ•์˜ ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋งค์นญ์‹œํ‚ด
- x -> len(data) ๋งŒํผ์˜ ์ธ๋ฑ์Šค๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑ
- ๊ธฐ๋ณธ plot = line plot


โœ… plt.plot([  ])
     

 

1. x tick(x์ถ• ๊ฐ’) ์„ค์ •

- plt.plot(x,y) : x์— ๋„ฃ์–ด์ค€ ๋ฆฌ์ŠคํŠธ์™€ y์— ๋„ฃ์–ด์ค€ ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™์•„์•ผํ•จ
โœ… plt.plot([  ],[  ])

 

2. ์ถ• ์ด๋ฆ„๊ณผ plot ์ œ๋ชฉ ์ง€์ •

- plot ์ œ๋ชฉ : plt.title('title')
- x์ถ• ์ด๋ฆ„ : plt.xlabel('x_name')
- y์ถ• ์ด๋ฆ„ : plt.ylabel('y_name')
โœ… plt.plot([  ],[  ])
โœ… plt.title('  ')
โœ… plt.xlabel(' ')
โœ… plt.ylabel(' ')

3. ๋‘ ๊ฐœ์˜ ์„ ์„ ๊ทธ๋ฆฌ๊ธฐ

 ๊ฐ๊ฐ์˜ ๋ผ์ธ ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ plt.plot() ๋ช…๋ น์–ด๋กœ ์ž…๋ ฅ
- ๋ฒ”๋ก€(legend) ์ถ”๊ฐ€
   plt.legend()

 

 

4. ์Šคํƒ€์ผ ์ง€์ •

  • plt.plot([x], y, [fmt], **kwargs)
    • fmt : '[color][marker][line]'
      • ์ƒ‰์ƒ, ๋งˆ์ปค, ์„  ๋“ฑ์— ๋Œ€ํ•œ ํฌ๋งท ์˜ต์…˜ ์„ค์ •

1) ๋งˆ์ปค ์ฐธ์กฐ ๋„ํ๋จผํŠธ ์ฃผ์†Œ
https://matplotlib.org/3.1.3/api/markers_api.html
2) ์ƒ‰์ƒ ์ฐธ์กฐ ๋„ํ๋จผํŠธ ์ฃผ์†Œ
https://matplotlib.org/3.1.0/gallery/color/named_colors.html
3) ๋ผ์ธ ์Šคํƒ€์ผ ์ฐธ์กฐ ๋„ํ๋จผํŠธ ์ฃผ์†Œ
https://matplotlib.org/gallery/lines_bars_and_markers/line_styles_reference.html

 

4-1) ์Šคํƒ€์ผ ๋ฌธ์ž์—ด ์ถ”๊ฐ€ : [fmt] => color + maker + line ์ˆœ์„œ๋Œ€๋กœ ๋ฌธ์ž์—ด ์ž‘์„ฑ
 ์–ด๋А ์š”์†Œ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ํ•ด๋‹น ์ƒ๋žต๋œ ์š”์†Œ๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ ์šฉ
 'o' : ๋ผ์ธ ์—†์ด ํฐ ์ (์›๋ชจ์–‘) ์œผ๋กœ ๋ฐ์ดํ„ฐ ์œ„์น˜ ํ‘œ์‹œ
โœ… plt.plot([  ],[  ], 'o')

 

4-2) o- : ๋งˆ์ปค๋Š” ๋™๊ทธ๋ผ๋ฏธ, ๋ผ์ธ์€ ์‹ค์„ 
 fmt[์ƒ‰์ƒ][๋งˆ์ปค][์„ ์ข…๋ฅ˜]
โœ… plt.plot([1,2,3,4],[2,6,10,7], 'o-')

4-3) o-- : ๋งˆ์ปค๋Š” ๋™๊ทธ๋ผ๋ฏธ, ์„ ์€ ์ ์„ 
โœ… plt.plot([  ],[  ], 'o--')

 

4-4) ro:   : r(๋นจ๊ฐ„์ƒ‰),o(๋งˆ์ปค),:(์ ์œผ๋กœ๋œ ์ ์„ )

โœ… plt.plot([  ],[  ], 'ro:')

 

โ€ป ๊ธฐํƒ€ ์Šคํƒ€์ผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ข…๋ฅ˜
- color : ์ƒ‰์ƒ(magenta)
- linestyle : -.
- marker : ^
- markerfacecolor : orange
- markersize : 20
plt.plot([  ], [  ],
        color = '  ', linestyle='  ', marker='  ',
        markeredgecolor='  ', markerfacecolor='  ', markersize='  ')

์œ„์˜ ๋„ํ๋จผํŠธ ์ฐธ๊ณ ํ•ด์„œ ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ ๊ตฌํ˜„ ๊ฐ€๋Šฅ

 

5. ์ถ• ๋ฒ”์œ„ ์ง€์ •

๐Ÿ“Œ matplotlib.pyplot.axis

  • plt.axis([xmin, xmax, ymin, ymax])
    • xmin : x์ถ• ์ตœ์†Œ๊ฐ’
    • xmax : x์ถ• ์ตœ๋Œ€๊ฐ’
    • ymin : y์ถ• ์ตœ์†Œ๊ฐ’
    • ymax : y์ถ• ์ตœ๋Œ€๊ฐ’

๐Ÿ“Œ matplotplib.pyplot.xlim / ylim

  • plt.xlim(min, max)
  • plt.ylim(min, max)

 

๐Ÿ”‘ Bar chart (๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„)

  • ์—ฌ๋Ÿฌ ๊ฐ’์˜ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ํ‘œํ˜„๋ฒ•์ด๋ฉฐ ์›ํ˜• ์ฐจํŠธ๋ณด๋‹ค ๋”์šฑ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋จ
  • plt.bar(x, y)
    • x ๋ฐ์ดํ„ฐ๊ฐ€ ์นดํ…Œ๊ณ ๋ฆฌ ๊ฐ’์ธ ๊ฒฝ์šฐ์—๋Š” bar, barh ๋กœ ๋ฐ” ์ฐจํŠธ ์‹œ๊ฐํ™” ํ‘œํ˜„
    • ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ” ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด barh
    • barh ์ฐจํŠธ ์ฃผ์˜์  : x์ถ•์ด ์ผ๋ฐ˜์ ์œผ๋กœ y์ถ•์˜ ์œ„์น˜๋ฅผ ์˜๋ฏธ

ex)

x = ['๊ฐ€', '๋‚˜', '๋‹ค']
y = [2,10,5]
plt.bar(x,y)
plt.show()       

๐Ÿ“Œ ๋ฐ”๋งˆ๋‹ค ๋ถ™์ผ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด, xticks๋ฅผ ์”๋‹ˆ๋‹ค.

 

 

- ๊ฐ๊ฐ์˜ bar๋งˆ๋‹ค ์ƒ‰์ƒ ๋ณ€๊ฒฝํ•˜๊ธฐ 

๐Ÿงท plt.bar() ๊ฐ์ฒด set_color()


โœ… bar_list = plt.bar(x,y)
      bar_list[0].set_color('r')
      bar_list[1].set_color('g')

ex)