Pandas Grpah2

matplotlib »ç¿ë

matplotlib ¶óÀ̺귯¸® ÆÐÅ°Áö´Â ±×·¡ÇÁ³ª Â÷Æ®¸¦ ±×·ÁÁÖ´Â ±â´ÉÀÌ ÀÖ´Ù.
pandas ³»Àå ±×·¡ÇÁÀÇ ¿É¼ÇÀ» Ãß°¡ ÇÒ·Á¸é matplotlib ¶óÀ̺귯¸®¸¦ ÀÓÆ÷Æ® Çؼ­ »ç¿ëÇÏ¸é µÈ´Ù.
matplotlib ¸í·É¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ.

matplotlib »ç¿ëÇؼ­ ±×·¡ÇÁÀÇ Á¦¸ñ, x, yÃàÀÇ ¶óº§À» Ãß°¡ Çغ¸ÀÚ.

import pandas as pd
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

path = 'c:/windows/fonts/malgun.ttf'
font_family = fm.FontProperties(fname=path).get_name()
plt.rc('font', family=font_family)

data1 = [[10, 15, 100, 1], [100, 80, 10, 2], [80, 90, 95, 1], [50, 70, 88, 2]]       
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿', '¼øÈñ'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ', '¹Ý'])

df = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
plt.plot(df.index, df.values)

plt.title('ö¼öÀÇ Á¡¼ö')

plt.xlabel('°ú¸ñ')
plt.ylabel('Á¡¼ö')

plt.show()

matpolotlib¸¦ »ç¿ëÇϱâ À§ÇØ ÀÓÆ÷Æ®ÇÑ´Ù.
import matplotlib.pyplot as plt

ö¼öÀÇ Á¡¼ö¸¸ °¡Á®¿Â´Ù.
df = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]

±×·¡ÇÁÀÇ Á¦¸ñÀ» Ç¥½ÃÇÑ´Ù.
plt.title('ö¼öÀÇ Á¡¼ö')

xÃà À̸§À» Ãß°¡ÇÑ´Ù.
plt.xlabel('°ú¸ñ')

yÃà À̸§À» Ãß°¡ÇÑ´Ù.
plt.ylabel('Á¡¼ö')

±×·¡ÇÁ·Î Ãâ·ÂÇÑ´Ù.
plt.show()

°á°ú)


±×·¡ÇÁÀÇ »çÀÌÁ ÁöÁ¤ ÇÒ¼öµµ ÀÖ´Ù. °¡·Î 5ÀÎÄ¡, ¼¼·Î 3ÀÎÄ¡·Î ÁöÁ¤ÇÏ°í ÀÖ´Ù.
plt.figure(figsize=(5, 3))
plot ÇÔ¼ö ÀÌÀü¿¡ ½ÇÇà µÇ¾î¾ß ÇÑ´Ù.

µÎ»ç¶÷ÀÇ Á¡¼ö¸¦ ºñ±³ÇØ º¸ÀÚ 1.

import pandas as pd
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

path = 'c:/windows/fonts/malgun.ttf'
font_family = fm.FontProperties(fname=path).get_name()
plt.rc('font', family=font_family)

data1 = [[10, 15, 100, 1], [100, 80, 10, 2], [80, 90, 95, 1], [50, 70, 88, 2]]      
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿', '¼øÈñ'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ', '¹Ý'])

print(df)
plt.figure(figsize=(4, 3))

df1 = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
df2 = df.loc['¿µÈñ', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
df1.plot(color='red')
df2.plot(color='blue')
plt.legend()
plt.ylabel('Á¡¼ö')
plt.show()

°á°ú)
     ±¹¾î  ¿µ¾î   ¼öÇР ¹Ý
ö¼ö   10  15  100  1
¿µÈñ  100  80   10  2
±æµ¿   80  90   95  1
¼øÈñ   50  70   88  2



·¹Àüµå(¹ü·Ê)¸¦ Ãâ·ÂÇÑ´Ù.
plt.legend()

ÃÖÀûÀÇ À§Ä¡¿¡ Ãâ·ÂÇÏ°í ½Í´Ù¸é best ¿É¼ÇÀ» ÁöÁ¤ÇÑ´Ù.
plt.legend(loc='best')

±×·¡ÇÁ À̹ÌÁö·Î ÀúÀå

import pandas as pd
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

path = 'c:/windows/fonts/malgun.ttf'
font_family = fm.FontProperties(fname=path).get_name()
plt.rc('font', family=font_family)

data1 = [[10, 15, 100, 1], [100, 80, 10, 2], [80, 90, 95, 1], [50, 70, 88, 2]]      
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿', '¼øÈñ'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ', '¹Ý'])

df = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]

plt.figure(figsize=(4, 3))
plt.xticks(rotation='vertical')

plt.plot(df.index, df.values)

plt.title('ö¼öÀÇ Á¡¼ö')

plt.xlabel('°ú¸ñ')
plt.ylabel('Á¡¼ö')

plt.savefig('output.png')

µ¥ÀÌÅÍÇÁ·¹ÀÓ DataFrame.plot ÇÔ¼ö·Î ½ÇÇàÇÑ°Ç À̹ÌÁö·Î ÀúÀåÀÌ ¾ÈµÇ´Âµ¥, metplotlib·Î ÀúÀåÇÑ°Ç ÀúÀåÀÌ ÀߵȴÙ.
¸íÈ®ÇÑ ÀÌÀ¯´Â Àß ¸ð¸£°Ú´Ù.

À̹ÌÁö¸¦ °¡·Î 4ÀÎÄ¡, ¼¼·Î 3ÀÎÄ¡ Å©±â·Î ÁöÁ¤ÇÑ´Ù.
plt.figure(figsize=(4, 3))

xÃà À̸§À» ¼öÁ÷À¸·Î ȸÀüÇÑ´Ù.
plt.xticks(rotation='vertical')

µÎ»ç¶÷ÀÇ Á¡¼ö¸¦ ºñ±³ÇØ º¸ÀÚ 2.

import pandas as pd
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

path = 'c:/windows/fonts/malgun.ttf'
font_family = fm.FontProperties(fname=path).get_name()
plt.rc('font', family=font_family)

data1 = [[10, 15, 100, 1], [100, 80, 10, 2], [80, 90, 95, 1], [50, 70, 88, 2]]      
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿', '¼øÈñ'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ', '¹Ý'])

df1 = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
df2 = df.loc['¿µÈñ', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]

plt.figure(figsize=(5, 3))
plt.xticks(rotation='vertical')

plt.plot(df1.index, df1.values, color='green')
plt.plot(df2.index, df2.values, color='red')

plt.title('ö¼öÀÇ Á¡¼ö')

plt.xlabel('°ú¸ñ')
plt.ylabel('Á¡¼ö')

#plt.show()  show ¸í·ÉÀÌ savfig ¾Õ¿¡ ¿À¸é À̹ÌÁö°¡ ÀúÀåÀÌ ¾ÈµÈ´Ù.
plt.savefig('output.png')

À̹ÌÁö¸¦ ÀúÀåÇÑ´Ù.
plt.savefig()

À̹ÌÁö´Â ´ÙÀ½ÀÇ Æú´õ ¾Æ·¡¿¡ ÀÖ´Ù.
C:\Users\[À©µµ¿ì °èÁ¤ À̸§]\.spyder-py3


µÎ»ç¶÷ÀÇ Á¡¼ö¸¦ ºñ±³ÇÒ¶§´Â ¾Æ·¡¿Í °°ÀÌ ¸í·ÉÀ» ÁÖ¾ú´Ù.

df1 = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
df2 = df.loc['¿µÈñ', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
plt.plot(df1.index, df1.values, color='green')
plt.plot(df2.index, df2.values, color='red')

óÀ½¿£ ÀÌ·¸°Ô 2»ç¶÷ÀÇ Á¡¼ö¸¦ ºñ±³ÇÒ·Á°í ÇßÁö¸¸ ¿øÇÏ´Â °á°ú°¡ ³ª¿ÀÁö ¾Ê´Â´Ù. À̹ÌÁö°¡ ¾Æ·¡Ã³·³ ³ª¿Â´Ù.
df3 = df.loc[['ö¼ö', '¿µÈñ'], ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
plt.plot(df3.index, df3.values)



¹ü·Ê(·¹Àüµå) »ç¿ë¹ý

import pandas as pd
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

path = 'c:/windows/fonts/malgun.ttf'
font_family = fm.FontProperties(fname=path).get_name()
plt.rc('font', family=font_family)

data1 = [[10, 15, 100, 1], [100, 80, 10, 2], [80, 90, 95, 1], [50, 70, 88, 2]]      
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿', '¼øÈñ'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ', '¹Ý'])

df1 = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
df2 = df.loc['¿µÈñ', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]

plt.figure(figsize=(5, 3))
plt.xticks(rotation='vertical')

plt.plot(df1.index, df1.values, color='green', label='ö¼ö')
plt.plot(df2.index, df2.values, color='red', label='¿µÈñ')
plt.legend()
plt.title('ö¼öÀÇ Á¡¼ö')

plt.xlabel('°ú¸ñ')
plt.ylabel('Á¡¼ö')
plt.show()

°á°ú)


1) plot¿¡¼­ ¶óº§À» ¼³Á¤

plt.plot(df1.index, df1.values, color='green', label='ö¼ö')
plt.plot(df2.index, df2.values, color='red', label='¿µÈñ')
plt.legend()

2)legend¿¡¼­ Ãß°¡Çϱâ

line1, = plt.plot(df1.index, df1.values, color='green')
line2, = plt.plot(df2.index, df2.values, color='red')
plt.legend(handles=[line1, line2], labels=['ö¼ö', '¿µÈñ'])

"," line1, line2 µÚ¿¡ ½°Ç¥´Â ¹«¾ùÀΰ¡ ¸Þ´º¾ó´ë·Î ½°Ç¥¸¦ ºÙ¿©Áà¾ß Á¦´ë·Î µ¿ÀÛÇÑ´Ù.
¸Þ´º¾ó ¸µÅ©´Â ´ÙÀ½°ú °°´Ù.
https://matplotlib.org/3.3.1/tutorials/intermediate/legend_guide.html

½ºÅ¸ÀÏ ÁöÁ¤

import pandas as pd
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

path = 'c:/windows/fonts/malgun.ttf'
font_family = fm.FontProperties(fname=path).get_name()
plt.rc('font', family=font_family)

data1 = [[10, 15, 100, 1], [100, 80, 10, 2], [80, 90, 95, 1], [50, 70, 88, 2]]     
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿', '¼øÈñ'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ', '¹Ý'])

df1 = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
df2 = df.loc['¿µÈñ', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]

plt.figure(figsize=(5, 3))
plt.xticks(rotation='vertical')

print(plt.style.available)
#plt.style.use('ggplot')
plt.style.use('grayscale')

plt.plot(df1.index, df1.values, color='green', label='ö¼ö')
plt.plot(df2.index, df2.values, color='red', label='¿µÈñ')
plt.legend()
plt.title('ö¼öÀÇ Á¡¼ö')

plt.xlabel('°ú¸ñ')
plt.ylabel('Á¡¼ö')
plt.show()

°á°ú)


½ºÅ¸ÀÏ·Î ±×·¡ÇÁÀÇ ¸ð¾çÀ» ¹Ù²Ü¼ö ÀÖ´Ù.

½ºÅ¸ÀÏ ¸®½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù.
print(plt.style.available)

½ºÅ¸ÀÏÀ» ÁöÁ¤ÇÑ´Ù.
plt.style.use('grayscale')

Axes ¸Àº¸±â

matplotlib ±×·¡ÇÁ´Â Figure °´Ã¼¿Í Çϳª ÀÌ»óÀÇ subplot(Axes) °´Ã¼·Î ±¸¼º µÇ¾î ÀÖ´Ù.
Figure ĵ¹ö½º ±â´ÉÀÌ°í Axes´Â ±×·¡ÇÁÀÇ ±â´ÉÀÌ´Ù. ¿©·¯°³ÀÇ ±×·¡ÇÁ¸¦ ¸¸µé·Á¸é Axes¸¦ ¿©·¯°³ ¸¸µç´Ù.
axes´Â axisÀÇ º¹¼öÇüÀ¸·Î ±×·¡ÇÁÀÇ ÃàÀ» ¶æÇÑ´Ù.

È­¸é¿¡ µÎ°³ÀÇ ±×·¡ÇÁ¸¦ ±×¸®°í ½Í´Ù¸é 2°³ÀÇ axes¸¦ ¸¸µå¸é µÈ´Ù.
import pandas as pd
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

path = 'c:/windows/fonts/malgun.ttf'
font_family = fm.FontProperties(fname=path).get_name()
plt.rc('font', family=font_family)

data1 = [[10, 15, 100, 1], [100, 80, 10, 2], [80, 90, 95, 1], [50, 70, 88, 2]]      
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿', '¼øÈñ'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ', '¹Ý'])

df1 = df.loc['ö¼ö', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]
df2 = df.loc['¿µÈñ', ['±¹¾î', '¿µ¾î', '¼öÇÐ']]

fig = plt.figure(figsize=(5, 3))
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2)

ax1.set_title('ö¼ö ¿µÈñ Á¡¼ö')

#plt.style.use('ggplot')
plt.style.use('grayscale')

ax1.plot(df1, marker='o', markersize=5, color='green', label='ö¼ö')
ax2.plot(df2, marker='o', markersize=5, color='red', label='¿µÈñ')
ax1.legend(loc='best')
ax2.legend(loc='best')

plt.show()

°á°ú)


¸ÕÀú figure ±¸ÇÑ´Ù.
fig = plt.figure(figsize=(5, 3))

2°³ÀÇ axex( = subplot )¸¦ ¸¸µç´Ù.
ax1 = fig.add_subplot(2, 1, 1)  ---> 2Çà 1¿­ ù¹ø° ±×·¡ÇÁ
ax2 = fig.add_subplot(2, 1, 2)  ---> 2Çà 1¿­ µÎ¹ø° ±×·¡ÇÁ

¼¼·Î·Î ³ª´«´Ù¸é ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù.
ax1 = fig.add_subplot(1, 2, 1) 
ax2 = fig.add_subplot(1, 2, 2)

±×·¡ÇÁ¸¦ ±×¸°´Ù.
ax1.plot(df1, marker='o', markersize=5, color='green', label='ö¼ö')
ax2.plot(df2, marker='o', markersize=5, color='red', label='¿µÈñ')

matplotlib ¶óÀ̺귯¸® ÆÐÅ°Áö´Â ¿É¼ÇÀÌ ¸¹±â¶§¹®¿¡ ¿©±â±îÁö¸¸ ¾Ë¾Æº»´Ù.