๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[Python] ํŒŒ์ด์ฌ ๋งทํ”Œ๋กฏ๋ฆฝ(Matplotlib) - ๋ผ์ธ ์ฐจํŠธ ๋งŒ๋“ค๊ณ  ์ €์žฅํ•˜๊ณ  ๋ณด์—ฌ์ฃผ๊ธฐ / plot(), savefig(),show() ๋ณธ๋ฌธ

๐ŸPython/Matplotlib

[Python] ํŒŒ์ด์ฌ ๋งทํ”Œ๋กฏ๋ฆฝ(Matplotlib) - ๋ผ์ธ ์ฐจํŠธ ๋งŒ๋“ค๊ณ  ์ €์žฅํ•˜๊ณ  ๋ณด์—ฌ์ฃผ๊ธฐ / plot(), savefig(),show()

๋ฃจ๋ฆฌ์•ผใ…‘ 2023. 11. 20. 22:43
๋ฐ˜์‘ํ˜•

Matplotlib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๋ผ์ธ ์ฐจํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๋จผ์ €, ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ณ  plt.plot() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, x์™€ y ๊ฐ’์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.

๋จผ์ € Matplotlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  numpy ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ import ํ•ด์ค€๋‹ค.

์•„๋ž˜ ์˜ˆ์ œ์— ํ™œ์šฉ๋  x์™€ y์˜ ๊ฐ’์„ numpy์˜ arange ํ•จ์ˆ˜๋กœ array ํ˜•ํƒœ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

>> import matplotlib.pyplot as plt
>> import numpy as np

>> x = np.arange(0,10+1)
>> x
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
>> y = np.arange(0,10+1)
>> y
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

 

1. plot() ํ•จ์ˆ˜

plot() ํ•จ์ˆ˜๋Š” Matplotlib์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜๋กœ, ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • x: x ์ถ•์— ํ‘œ์‹œํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • y: y ์ถ•์— ํ‘œ์‹œํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

plot() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ผ์ธ ์ฐจํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์—ฌ๊ธฐ์— ๋‹ค์–‘ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„  ์ƒ‰, ์Šคํƒ€์ผ, ๋งˆ์ปค ๋“ฑ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

>> plt.plot(x,y)

 

2.savefig() ํ•จ์ˆ˜

savefig() ํ•จ์ˆ˜๋Š” Matplotlib๋กœ ์ƒ์„ฑํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

>> plt.plot(x,y)
>> plt.savefig('firstchart.jpg')
  • 'my_plot.png': ์ €์žฅํ•  ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์™€ ์ด๋ฆ„์„ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ํ™•์žฅ์ž๋ฅผ ํ†ตํ•ด ์ €์žฅ๋  ์ด๋ฏธ์ง€ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. (์˜ˆ: .png, .jpg ๋“ฑ).

savefig() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ˜„์žฌ ๊ทธ๋ž˜ํ”„๋ฅผ ์ง€์ •ํ•œ ๊ฒฝ๋กœ์— ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ์ €์žฅํ•œ๋‹ค. ์ด๋ฏธ์ง€ ํ˜•์‹์€ ํ™•์žฅ์ž์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค.

์ฐจํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ 
ํ•ด๋‹น ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ์— ๋ฐ”๋กœ ์ €์žฅ๋œ๋‹ค.

3. show() ํ•จ์ˆ˜

show() ํ•จ์ˆ˜๋Š” Matplotlib๋กœ ์ƒ์„ฑํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
show() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๊ทธ๋ž˜ํ”„๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉฐ, Jupyter Notebook์—์„œ๋Š” ์…€์— ์ง์ ‘ ํ”Œ๋กฏ์ด ํ‘œ์‹œ๋˜๊ณ  ์ผ๋ฐ˜์ ์ธ Python ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ณ„๋„์˜ ์ฐฝ์— ๊ทธ๋ž˜ํ”„๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.

์ด๋ฒˆ์—” ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ๋ผ์ธ์ฐจํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณธ๋‹ค.
์ด ๋•Œ numpy ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ sin() ํ•จ์ˆ˜๋Š” ์‚ฌ์ธ(sin) ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋„˜ํŒŒ์ด์˜ ์›์†Œ๋ณ„(element-wise) ์‚ฌ์ธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

>> x= np.arange(0,10,0.1)
>> x
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2,
       1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5,
       2.6, 2.7, 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8,
       3.9, 4. , 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5. , 5.1,
       5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 6.4,
       6.5, 6.6, 6.7, 6.8, 6.9, 7. , 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7,
       7.8, 7.9, 8. , 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9. ,
       9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9])
>> y = np.sin(x)
>> y
array([ 0.        ,  0.09983342,  0.19866933,  0.29552021,  0.38941834,
        0.47942554,  0.56464247,  0.64421769,  0.71735609,  0.78332691,
        0.84147098,  0.89120736,  0.93203909,  0.96355819,  0.98544973,
        0.99749499,  0.9995736 ,  0.99166481,  0.97384763,  0.94630009,
        0.90929743,  0.86320937,  0.8084964 ,  0.74570521,  0.67546318,
        0.59847214,  0.51550137,  0.42737988,  0.33498815,  0.23924933,
        0.14112001,  0.04158066, -0.05837414, -0.15774569, -0.2555411 ,
       -0.35078323, -0.44252044, -0.52983614, -0.61185789, -0.68776616,
       -0.7568025 , -0.81827711, -0.87157577, -0.91616594, -0.95160207,
       -0.97753012, -0.993691  , -0.99992326, -0.99616461, -0.98245261,
       -0.95892427, -0.92581468, -0.88345466, -0.83226744, -0.77276449,
       -0.70554033, -0.63126664, -0.55068554, -0.46460218, -0.37387666,
       -0.2794155 , -0.1821625 , -0.0830894 ,  0.0168139 ,  0.1165492 ,
        0.21511999,  0.31154136,  0.40484992,  0.49411335,  0.57843976,
        0.6569866 ,  0.72896904,  0.79366786,  0.85043662,  0.8987081 ,
        0.93799998,  0.96791967,  0.98816823,  0.99854335,  0.99894134,
        0.98935825,  0.96988981,  0.94073056,  0.90217183,  0.85459891,
        0.79848711,  0.7343971 ,  0.66296923,  0.58491719,  0.50102086,
        0.41211849,  0.31909836,  0.22288991,  0.12445442,  0.02477543,
       -0.07515112, -0.17432678, -0.27176063, -0.36647913, -0.45753589])

plot() ํ•จ์ˆ˜๋กœ ์ฐจํŠธ๋ฅผ ๋งŒ๋“ค๊ณ 
show() ํ•จ์ˆ˜๋กœ ์ฐจํŠธ๋งŒ ๋ณด์—ฌ์ค€๋‹ค.

>> plt.plot(x,y)
>> plt.show()

 

๋ฐ˜์‘ํ˜•