일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PySpark
- math
- numpy
- gas
- matplotlib
- Java
- SQL
- hive
- string
- array
- Github
- c#
- Excel
- GIT
- Apache
- Kotlin
- dataframe
- Mac
- Tkinter
- Google Excel
- django
- 파이썬
- PostgreSQL
- Python
- PANDAS
- google apps script
- list
- Google Spreadsheet
- Redshift
- Today
- Total
달나라 노트
Python matplotlib : table (table 그리기, 좌표평면 위 표 그리기) 본문
Python matplotlib : table (table 그리기, 좌표평면 위 표 그리기)
CosmosProject 2024. 4. 10. 01:43
matplotlib의 table method는 좌표평면 위에 table을 그리는 기능을 합니다.
예시를 봅시다.
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'c', 'd', 'e']
})
print(df)
print(df.values)
list_col_label = ['col1', 'col2']
list_row_color = ['pink', 'lightskyblue', 'lightgreen', 'royalblue', '#5e84ff']
list_col_color = ['powderblue', 'silver']
plt.table(
cellText=df.values, # table data
colLabels=list_col_label, # column label (column name)
colWidths=[0.1, 0.1, 0.1], # column width
colColours=list_col_color, # column label color
loc='upper right' # table location
)
plt.show()
-- Result
col1 col2
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
[[1 'a']
[2 'b']
[3 'c']
[4 'd']
[5 'e']]
위 예시는 DataFrame에 있는 데이터를 기준으로 table을 그리는 코드입니다.
코드의 결과는 위와 같습니다.
plt.table(
cellText=df.values, # table data
colLabels=list_col_label, # column label (column name)
colWidths=[0.1, 0.1, 0.1], # column width
colColours=list_col_color, # column label color
loc='upper right' # table location
)
- cellText=df.values
cellText는 table의 cell에 넣을 dataset입니다.
df.values를 보면 2차원 array이며 내부 array에는 하나의 행에 대한 정보가 하나의 내부 array에 담겨 있습니다.
- colLabels=list_col_label
column name을 정하는 요소입니다.
- colWidths=[0.1, 0.1, 0.1]
column 너비를 정하는 요소입니다. list에 담긴 숫자들의 순서대로 column width가 결정됩니다.
- colColours=list_col_color
column name이 적힌 cell의 색상을 의미합니다.
마찬가지로 각 column 별로 색상을 지정할 수 있습니다.
- loc='upper right'
table을 나타낼 위치입니다.
upper right은 table을 좌표평면의 오른쪽 위에 위치킨다는 의미입니다.
loc로 사용할 수 있는 keyword는 아래와 같습니다.
upper right
upper left
lower left
lower right
center left
center right
lower center
upper center
center
top right
top left
bottom left
bottom right
right
left
top
bottom
이번에는 새로운 option을 추가해 보았습니다.
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'c', 'd', 'e']
})
print(df)
print(df.values)
list_row_label = ['Row1', 'Row2', 'Row3', 'Row4', 'Row5']
list_col_label = ['col1', 'col2']
list_row_color = ['pink', 'lightskyblue', 'lightgreen', 'royalblue', '#5e84ff']
list_col_color = ['powderblue', 'silver']
plt.table(
cellText=df.values, # table data
rowLabels=list_row_label, # row label (row name)
colLabels=list_col_label, # column label (column name)
colWidths=[0.1, 0.1, 0.1], # column width
rowColours=list_row_color, # row label color
colColours=list_col_color, # column label color
loc='upper right' # table location
)
plt.show()
-- Reuslt
col1 col2
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
[[1 'a']
[2 'b']
[3 'c']
[4 'd']
[5 'e']]
- rowLabels=list_row_label
row name을 지정할 수 있습니다.
- rowColours=list_row_color
row color를 정할 수 있습니다.
Row name이 생성되었으며 Row name에 각각 컬러링이 된 것을 볼 수 있습니다.
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'c', 'd', 'e']
})
print(df)
print(df.values)
list_row_label = ['Row1', 'Row2', 'Row3', 'Row4', 'Row5']
list_col_label = ['col1', 'col2']
list_row_color = ['pink', 'lightskyblue', 'lightgreen', 'royalblue', '#5e84ff']
list_col_color = ['powderblue', 'silver']
fig, graph = plt.subplots(nrows=2, ncols=2)
for r in range(2):
for c in range(2):
graph[r][c].table(
cellText=df.values, # table data
rowLabels=list_row_label, # row label (row name)
colLabels=list_col_label, # column label (column name)
colWidths=[0.1, 0.1, 0.1], # column width
rowColours=list_row_color, # row label color
colColours=list_col_color, # column label color
loc='center' # table location
)
plt.show()
-- Result
col1 col2
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
[[1 'a']
[2 'b']
[3 'c']
[4 'd']
[5 'e']]
이번엔 subplots에 table을 그려보았습니다.
위처럼 각 subplot에 table이 그려진 것을 볼 수 있습니다.