728x90
반응형
데이터는 그냥 plot으로 그리면 아래와 같이 지수로 표시됩니다.
import matplotlib.pyplot as plt
data = [ 18245824, 37304412, 47413558, 58950482, 69031232, 78310905, 86006036, 94105527, 106179031, 115079370
,124198054, 130693879, 141861722, 152311590, 165878863, 174754600, 195942603, 210342549, 222761525, 235886329
,250065696, 262379197, 275528131, 288950540, 302449666, 316289174, 330857121, 344357987, 358577332, 372681868
,387951295, 401555403, 415453079, 428185060, 441789263, 456267506, 469478437, 483049846, 496161919, 510249534
,521658522, 535279464, 547198157, 560712035, 573376201, 589058407, 603520714, 617193780, 632480754, 646494620
]
fig = plt.figure(figsize=(12, 6))
plt.rcParams['font.size'] = 14
plt.plot(data)
plt.grid()
plt.show()
plt.close(fig)
아래와 같이
plt.gca().get_yaxis().get_major_formatter().set_scientific(False)
를 사용하면 지수값이 아닌 원래 값들이 표시됩니다.
그런데, 천 단위 콤마는 표시되지 않습니다.
import matplotlib.pyplot as plt
data = [ 18245824, 37304412, 47413558, 58950482, 69031232, 78310905, 86006036, 94105527, 106179031, 115079370
,124198054, 130693879, 141861722, 152311590, 165878863, 174754600, 195942603, 210342549, 222761525, 235886329
,250065696, 262379197, 275528131, 288950540, 302449666, 316289174, 330857121, 344357987, 358577332, 372681868
,387951295, 401555403, 415453079, 428185060, 441789263, 456267506, 469478437, 483049846, 496161919, 510249534
,521658522, 535279464, 547198157, 560712035, 573376201, 589058407, 603520714, 617193780, 632480754, 646494620
]
fig = plt.figure(figsize=(12, 6))
plt.rcParams['font.size'] = 14
plt.plot(data)
plt.gca().get_yaxis().get_major_formatter().set_scientific(False)
plt.grid()
plt.show()
plt.close(fig)
아래와 같이
plt.gca().ticklabel_format(axis="y", style="plain")
를 사용하면 동일하게 원값이 기준이 되어 표시하지만 천 단위 콤마는 표시되지 않습니다.
import matplotlib.pyplot as plt
data = [ 18245824, 37304412, 47413558, 58950482, 69031232, 78310905, 86006036, 94105527, 106179031, 115079370
,124198054, 130693879, 141861722, 152311590, 165878863, 174754600, 195942603, 210342549, 222761525, 235886329
,250065696, 262379197, 275528131, 288950540, 302449666, 316289174, 330857121, 344357987, 358577332, 372681868
,387951295, 401555403, 415453079, 428185060, 441789263, 456267506, 469478437, 483049846, 496161919, 510249534
,521658522, 535279464, 547198157, 560712035, 573376201, 589058407, 603520714, 617193780, 632480754, 646494620
]
fig = plt.figure(figsize=(12, 6))
plt.rcParams['font.size'] = 14
plt.plot(data)
plt.gca().ticklabel_format(axis="y", style="plain")
plt.grid()
plt.show()
plt.close(fig)
아래와 같이
plt.gca().set_yticklabels(['{:,.0f}'.format(v) for v in data])
를 사용하면 천단위 콤마를 표시하게 됩니다.
그런데, 이렇게 되면 실제 값이 표시되기 때문에 하나의 plot은 문제없을 수 있는데, 여러 개를 볼떄는 이 값들이 달라지기 때문에 plot 간 비교가 어렵게 됩니다.
import matplotlib.pyplot as plt
data = [ 18245824, 37304412, 47413558, 58950482, 69031232, 78310905, 86006036, 94105527, 106179031, 115079370
,124198054, 130693879, 141861722, 152311590, 165878863, 174754600, 195942603, 210342549, 222761525, 235886329
,250065696, 262379197, 275528131, 288950540, 302449666, 316289174, 330857121, 344357987, 358577332, 372681868
,387951295, 401555403, 415453079, 428185060, 441789263, 456267506, 469478437, 483049846, 496161919, 510249534
,521658522, 535279464, 547198157, 560712035, 573376201, 589058407, 603520714, 617193780, 632480754, 646494620
]
fig = plt.figure(figsize=(12, 6))
plt.rcParams['font.size'] = 14
plt.plot(data)
plt.gca().set_yticklabels(['{:,.0f}'.format(v) for v in data])
plt.grid()
plt.show()
plt.close(fig)
아래와 같이
plt.gca().get_yaxis().set_major_formatter(StrMethodFormatter('{x:,.0f}'))
를 사용하면 천 단위 콤마가 잘 표시됩니다.
from matplotlib.ticker import FormatStrFormatter, StrMethodFormatter
를 해주어야 합니다.
import matplotlib.pyplot as plt
from matplotlib.ticker import FormatStrFormatter, StrMethodFormatter
data = [ 18245824, 37304412, 47413558, 58950482, 69031232, 78310905, 86006036, 94105527, 106179031, 115079370
,124198054, 130693879, 141861722, 152311590, 165878863, 174754600, 195942603, 210342549, 222761525, 235886329
,250065696, 262379197, 275528131, 288950540, 302449666, 316289174, 330857121, 344357987, 358577332, 372681868
,387951295, 401555403, 415453079, 428185060, 441789263, 456267506, 469478437, 483049846, 496161919, 510249534
,521658522, 535279464, 547198157, 560712035, 573376201, 589058407, 603520714, 617193780, 632480754, 646494620
]
fig = plt.figure(figsize=(12, 6))
plt.rcParams['font.size'] = 14
plt.plot(data)
plt.gca().get_yaxis().set_major_formatter(StrMethodFormatter('{x:,.0f}'))
plt.grid()
plt.show()
plt.close(fig)
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] pandas DataFrame의 인덱스 Header 위에 문자 추가 (0) | 2023.02.03 |
---|---|
[파이썬] 문제 : pandas DataFrame pivot(Matrix로 보기) (0) | 2023.02.02 |
[파이썬] MySQL 사용시 에러(ERROR 2003 (HY000):Can't connect to MySQL server on 'localhost'(10061) (0) | 2023.01.29 |
[파이썬] 문제 : pandas DataFrame에서 loc 사용시 not index 에러 (0) | 2023.01.26 |
[파이썬] 문제 : 정규표현식으로 조건외 문자열 찾기 (0) | 2023.01.26 |
댓글