Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Django
- array
- flask
- Django-allauth
- python
- for loop
- graphene-django
- numpy
- allauth
- GraphQL
- FastAPI
- check_password
- tkinter Radio 동적버튼
- SQL
Archives
- Today
- Total
객
Matplotlib 연습 본문
Matplotlib 연습
데이터는 가상의 데이터임니다. matplotlib을 연습을 위해서....맞춰서 복사한것임.
In [1]:
import pandas as pd
import numpy as np
In [2]:
df = pd.read_csv('./data/APT_2013_2021_11.csv', encoding='UTF-8')
df.head()
Out[2]:
Unnamed: 0 | 지역명 | 연도 | 월 | 평당분양가격 | |
---|---|---|---|---|---|
0 | 1 | 서울 | 2013 | 12 | 18189.0 |
1 | 2 | 부산 | 2013 | 12 | 8111.0 |
2 | 3 | 대구 | 2013 | 12 | 8080.0 |
3 | 4 | 인천 | 2013 | 12 | 10204.0 |
4 | 5 | 광주 | 2013 | 12 | 6098.0 |
In [3]:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1613 entries, 0 to 1612
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Unnamed: 0 1613 non-null int64
1 지역명 1613 non-null object
2 연도 1613 non-null int64
3 월 1613 non-null int64
4 평당분양가격 1547 non-null float64
dtypes: float64(1), int64(3), object(1)
memory usage: 63.1+ KB
In [4]:
df_pivot = df.pivot_table('평당분양가격', '연도', '지역명')
df_pivot
Out[4]:
지역명 | 강원 | 경기 | 경남 | 경북 | 광주 | 대구 | 대전 | 부산 | 서울 | 세종 | 울산 | 인천 | 전남 | 전북 | 제주 | 충남 | 충북 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
연도 | |||||||||||||||||
2013 | 6230.000000 | 10855.000000 | 6473.000000 | 6168.000000 | 6098.000000 | 8080.000000 | 8321.000000 | 8111.000000 | 18189.000000 | 7601.000000 | 8090.000000 | 10204.000000 | 5678.000000 | 6282.000000 | 7674.000000 | 6365.000000 | 6589.0000 |
2014 | 6332.500000 | 10509.083333 | 6728.750000 | 6536.500000 | 7587.833333 | 8286.083333 | 8240.333333 | 9180.166667 | 18997.250000 | 8085.333333 | 8361.666667 | 10074.833333 | 5718.916667 | 6362.333333 | 7855.166667 | 6681.583333 | 6620.0000 |
2015 | 6855.308333 | 10487.800000 | 7671.233333 | 7017.063636 | 7966.666667 | 8671.460000 | 8088.036364 | 9631.166667 | 19163.845455 | 8623.560000 | 9268.475000 | 10291.275000 | 6120.575000 | 6654.300000 | 7458.133333 | 7017.366667 | 6697.9200 |
2016 | 7011.125000 | 11220.000000 | 7847.950000 | 7375.500000 | 8937.000000 | 10310.025000 | 8501.625000 | 10424.700000 | 20663.500000 | 8860.500000 | 10208.550000 | 10533.270000 | 6488.625000 | 6407.400000 | 9458.130000 | 7330.675000 | 6770.2250 |
2017 | 7170.625000 | 11840.675000 | 8163.925000 | 7802.575000 | 9471.000000 | 11507.100000 | 9056.025000 | 11663.575000 | 21425.250000 | 9133.025000 | 11327.525000 | 10749.475000 | 7245.700000 | 7074.650000 | 10907.325000 | 7455.800000 | 6770.2250 |
2018 | 7680.750000 | 13185.975000 | 9019.450000 | 8505.200000 | 9855.725000 | 12075.800000 | 10180.225000 | 12997.875000 | 22889.350000 | 10354.850000 | 10241.400000 | 11273.900000 | 7789.100000 | 7625.750000 | 11890.725000 | 8012.675000 | 7874.0750 |
2019 | 8141.650000 | 14468.850000 | 9870.850000 | 8856.650000 | 11822.800000 | 13852.025000 | 11777.700000 | 13116.400000 | 26131.050000 | 11078.925000 | 10022.100000 | 12634.875000 | 7902.400000 | 8196.650000 | 12137.950000 | 8606.950000 | 7574.6000 |
2020 | 9331.300000 | 14383.325000 | 10160.700000 | 9544.975000 | 12500.125000 | 15145.075000 | 11094.050000 | 13247.575000 | 26910.125000 | 11355.300000 | 12202.850000 | 14674.000000 | 8696.875000 | 8317.100000 | 14540.900000 | 8856.100000 | 7959.6000 |
2021 | 9679.725000 | 14112.037500 | 10325.700000 | 10251.037500 | 13890.525000 | 15463.800000 | 11698.087500 | 14348.400000 | 29044.950000 | 12538.350000 | 14281.575000 | 15211.762500 | 9901.237500 | 8793.262500 | 23317.800000 | 9229.687500 | 8622.4875 |
In [5]:
df1_pivot = df.pivot_table('평당분양가격', '월', '지역명')
df1_pivot
Out[5]:
지역명 | 강원 | 경기 | 경남 | 경북 | 광주 | 대구 | 대전 | 부산 | 서울 | 세종 | 울산 | 인천 | 전남 | 전북 | 제주 | 충남 | 충북 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
월 | |||||||||||||||||
1 | 7580.725000 | 12443.137500 | 8522.975000 | 8291.428571 | 9848.475000 | 11475.675000 | 9642.625000 | 11422.525000 | 22754.925000 | 9792.325000 | 10288.528571 | 11742.614286 | 7254.362500 | 7362.385714 | 11350.628571 | 7757.362500 | 7213.725000 |
2 | 7603.250000 | 12478.075000 | 8591.837500 | 7917.137500 | 10227.957143 | 11400.212500 | 9813.812500 | 11583.162500 | 22704.187500 | 9783.825000 | 10295.600000 | 11659.175000 | 7324.425000 | 7241.300000 | 11446.328571 | 7794.262500 | 7242.212500 |
3 | 7491.925000 | 12533.525000 | 8584.812500 | 7924.762500 | 10016.812500 | 11502.450000 | 9688.850000 | 11760.014286 | 22726.987500 | 9820.512500 | 10354.200000 | 12015.614286 | 7349.600000 | 7264.250000 | 11830.275000 | 7751.350000 | 7333.025000 |
4 | 7659.050000 | 12590.462500 | 8627.800000 | 7993.037500 | 10080.775000 | 11631.900000 | 9724.175000 | 11633.925000 | 22663.550000 | 9797.257143 | 10662.314286 | 11786.287500 | 7324.012500 | 7336.837500 | 12083.575000 | 7805.662500 | 7434.987500 |
5 | 7636.112500 | 12449.637500 | 8616.100000 | 8025.200000 | 10217.487500 | 11768.887500 | 9829.562500 | 11807.775000 | 22969.850000 | 9800.971429 | 10762.271429 | 11927.562500 | 7338.075000 | 7396.362500 | 12434.200000 | 7871.287500 | 7438.000000 |
6 | 7734.462500 | 12417.012500 | 8690.312500 | 8077.587500 | 10339.762500 | 11810.212500 | 9828.362500 | 11851.900000 | 23156.162500 | 9841.128571 | 10953.857143 | 11943.700000 | 7438.000000 | 7435.662500 | 12550.450000 | 7904.350000 | 7367.212500 |
7 | 7732.875000 | 12433.637500 | 8742.212500 | 8302.587500 | 10402.375000 | 12151.350000 | 9790.412500 | 11892.137500 | 23188.687500 | 9845.557143 | 11020.328571 | 11932.787500 | 7493.625000 | 7458.950000 | 12784.337500 | 7966.875000 | 7356.962500 |
8 | 7837.100000 | 12494.562500 | 8745.225000 | 8391.575000 | 10343.000000 | 12261.775000 | 9743.800000 | 11884.187500 | 23226.800000 | 9871.628571 | 11096.042857 | 11936.712500 | 7580.712500 | 7505.537500 | 12805.375000 | 7989.212500 | 7358.450000 |
9 | 7720.600000 | 12309.357143 | 8586.971429 | 8108.585714 | 9831.000000 | 11773.485714 | 9588.328571 | 11617.871429 | 22302.414286 | 9461.983333 | 10341.285714 | 11589.971429 | 7237.942857 | 7413.414286 | 10732.400000 | 7751.314286 | 7173.714286 |
10 | 7796.200000 | 12710.283333 | 8643.714286 | 8234.414286 | 9866.742857 | 12322.400000 | 9840.014286 | 11664.371429 | 23382.466667 | 9765.614286 | 10593.114286 | 11692.914286 | 7320.028571 | 7357.228571 | 10714.914286 | 7749.342857 | 7251.466667 |
11 | 7795.442857 | 12390.171429 | 8744.100000 | 8545.433333 | 10006.114286 | 12218.400000 | 9954.750000 | 11767.471429 | 23041.514286 | 9952.600000 | 10646.857143 | 11745.814286 | 7407.028571 | 7364.114286 | 10882.271429 | 7798.857143 | 7241.885714 |
12 | 7569.650000 | 12316.650000 | 8479.900000 | 8084.575000 | 9558.350000 | 11367.425000 | 9606.737500 | 11417.250000 | 22589.712500 | 9758.700000 | 10344.914286 | 11576.600000 | 7232.087500 | 7376.200000 | 10561.075000 | 7739.600000 | 7285.457143 |
In [6]:
df_경기 = df_pivot[['경기']]
In [7]:
df_2015 = df_pivot[2:3]
In [155]:
df_경기
Out[155]:
지역명 | 경기 |
---|---|
연도 | |
2013 | 10855.000000 |
2014 | 10509.083333 |
2015 | 10487.800000 |
2016 | 11220.000000 |
2017 | 11840.675000 |
2018 | 13185.975000 |
2019 | 14468.850000 |
2020 | 14383.325000 |
2021 | 14112.037500 |
In [9]:
df_2015
Out[9]:
지역명 | 강원 | 경기 | 경남 | 경북 | 광주 | 대구 | 대전 | 부산 | 서울 | 세종 | 울산 | 인천 | 전남 | 전북 | 제주 | 충남 | 충북 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
연도 | |||||||||||||||||
2015 | 6855.308333 | 10487.8 | 7671.233333 | 7017.063636 | 7966.666667 | 8671.46 | 8088.036364 | 9631.166667 | 19163.845455 | 8623.56 | 9268.475 | 10291.275 | 6120.575 | 6654.3 | 7458.133333 | 7017.366667 | 6697.92 |
In [10]:
print(df_2015.round(0).astype(int).values.T)
print(df_2015.astype(int))
[[ 6855]
[10488]
[ 7671]
[ 7017]
[ 7967]
[ 8671]
[ 8088]
[ 9631]
[19164]
[ 8624]
[ 9268]
[10291]
[ 6121]
[ 6654]
[ 7458]
[ 7017]
[ 6698]]
지역명 강원 경기 경남 경북 광주 대구 대전 부산 서울 세종 울산 \
연도
2015 6855 10487 7671 7017 7966 8671 8088 9631 19163 8623 9268
지역명 인천 전남 전북 제주 충남 충북
연도
2015 10291 6120 6654 7458 7017 6697
In [11]:
df_2015.index
Out[11]:
Int64Index([2015], dtype='int64', name='연도')
In [12]:
df_2015.columns
Out[12]:
Index(['강원', '경기', '경남', '경북', '광주', '대구', '대전', '부산', '서울', '세종', '울산', '인천',
'전남', '전북', '제주', '충남', '충북'],
dtype='object', name='지역명')
In [ ]:
#
# df_2015.T
# df_2015 = df_2015.set_index("지역명")
In [14]:
df_2015 = df_2015.T
df_2015
Out[14]:
연도 | 2015 |
---|---|
지역명 | |
강원 | 6855.308333 |
경기 | 10487.800000 |
경남 | 7671.233333 |
경북 | 7017.063636 |
광주 | 7966.666667 |
대구 | 8671.460000 |
대전 | 8088.036364 |
부산 | 9631.166667 |
서울 | 19163.845455 |
세종 | 8623.560000 |
울산 | 9268.475000 |
인천 | 10291.275000 |
전남 | 6120.575000 |
전북 | 6654.300000 |
제주 | 7458.133333 |
충남 | 7017.366667 |
충북 | 6697.920000 |
In [15]:
df_2015.index
Out[15]:
Index(['강원', '경기', '경남', '경북', '광주', '대구', '대전', '부산', '서울', '세종', '울산', '인천',
'전남', '전북', '제주', '충남', '충북'],
dtype='object', name='지역명')
In [18]:
# df_2015.round(0).astype(int).values
df_2015 = df_2015.astype(int)
df_2015
Out[18]:
연도 | 2015 |
---|---|
지역명 | |
강원 | 6855 |
경기 | 10487 |
경남 | 7671 |
경북 | 7017 |
광주 | 7966 |
대구 | 8671 |
대전 | 8088 |
부산 | 9631 |
서울 | 19163 |
세종 | 8623 |
울산 | 9268 |
인천 | 10291 |
전남 | 6120 |
전북 | 6654 |
제주 | 7458 |
충남 | 7017 |
충북 | 6697 |
In [6]:
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import seaborn as sns
In [28]:
## 데이터
# city_category = ['강원', '경기', '경남', '경북', '광주', '대구', '대전', '부산', '서울', '세종', '울산', '인천','전남', '전북', '제주', '충남', '충북']
# num_patient = [6855, 10488, 7671, 7017, 7967, 8671, 8088, 9631, 19164, 8624, 9268, 10291, 6121, 6654, 7458, 7017, 6698]
city_category = df_2015.index
num_patient = df_2015.values.T
## 시각화
plt.figure(figsize=(12,8)) ## Figure 생성 사이즈는 10 by 10
colors = sns.color_palette('hls',len(city_category)) ## 색상 지정
xtick_label_position = list(range(len(city_category))) ## x축 눈금 라벨이 표시될 x좌표
plt.xticks(xtick_label_position, city_category) ## x축 눈금 라벨 출력
plt.ylim(0, 20000)
plt.bar(xtick_label_position, num_patient[0][:], color=colors) ## 바 차트 출력
plt.title('2015년도 지역 평당분양가격',fontsize=20) ## 타이틀 출력
plt.xlabel('지역') ## x축 라벨 출력
plt.ylabel('평당분양가걱') ## y축 라벨 출력
plt.show()
[ 해당 지역의 년도별 추이 ]¶
In [8]:
df1_경기 = df_pivot[['경기']]
df1_경기
Out[8]:
지역명 | 경기 |
---|---|
연도 | |
2013 | 10855.000000 |
2014 | 10509.083333 |
2015 | 10487.800000 |
2016 | 11220.000000 |
2017 | 11840.675000 |
2018 | 13185.975000 |
2019 | 14468.850000 |
2020 | 14383.325000 |
2021 | 14112.037500 |
In [9]:
df1_경기.index
Out[9]:
Int64Index([2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021], dtype='int64', name='연도')
In [10]:
df1_경기.values
Out[10]:
array([[10855. ],
[10509.08333333],
[10487.8 ],
[11220. ],
[11840.675 ],
[13185.975 ],
[14468.85 ],
[14383.325 ],
[14112.0375 ]])
In [11]:
df1_경기.columns
Out[11]:
Index(['경기'], dtype='object', name='지역명')
In [14]:
city_category = df1_경기.index
num_patient = df1_경기.values.T
## 시각화
plt.figure(figsize=(12,8)) ## Figure 생성 사이즈는 10 by 10
colors = sns.color_palette('hls',len(city_category)) ## 색상 지정
xtick_label_position = list(range(len(city_category))) ## x축 눈금 라벨이 표시될 x좌표
plt.xticks(xtick_label_position, city_category) ## x축 눈금 라벨 출력
plt.ylim(0, 20000)
plt.bar(xtick_label_position, num_patient[0][:], color=colors) ## 바 차트 출력
plt.title('경기 지역 년도별 평당분양가격',fontsize=20) ## 타이틀 출력
plt.xlabel('년도') ## x축 라벨 출력
plt.ylabel('평당분양가걱') ## y축 라벨 출력
# plt.show()
plt.savefig('./../경기지역.png')
In [45]:
df2_경기 = df1_pivot[['경기']]
df2_경기
Out[45]:
지역명 | 경기 |
---|---|
월 | |
1 | 12443.137500 |
2 | 12478.075000 |
3 | 12533.525000 |
4 | 12590.462500 |
5 | 12449.637500 |
6 | 12417.012500 |
7 | 12433.637500 |
8 | 12494.562500 |
9 | 12309.357143 |
10 | 12710.283333 |
11 | 12390.171429 |
12 | 12316.650000 |
In [46]:
df2_경기.index
Out[46]:
Int64Index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], dtype='int64', name='월')
In [47]:
df2_경기.values
Out[47]:
array([[12443.1375 ],
[12478.075 ],
[12533.525 ],
[12590.4625 ],
[12449.6375 ],
[12417.0125 ],
[12433.6375 ],
[12494.5625 ],
[12309.35714286],
[12710.28333333],
[12390.17142857],
[12316.65 ]])
In [48]:
df2_경기.columns
Out[48]:
Index(['경기'], dtype='object', name='지역명')
In [51]:
city_category = df2_경기.index
num_patient = df2_경기.values.T
## 시각화
plt.figure(figsize=(12,8)) ## Figure 생성 사이즈는 10 by 10
colors = sns.color_palette('hls',len(city_category)) ## 색상 지정
xtick_label_position = list(range(len(city_category))) ## x축 눈금 라벨이 표시될 x좌표
plt.xticks(xtick_label_position, city_category) ## x축 눈금 라벨 출력
plt.ylim(0, 20000)
plt.bar(xtick_label_position, num_patient[0][:], color=colors) ## 바 차트 출력
plt.title('경기 지역(2013 ~ 2021년) 월 평당분양가격',fontsize=20) ## 타이틀 출력
plt.xlabel('월') ## x축 라벨 출력
plt.ylabel('평당분양가걱') ## y축 라벨 출력
# plt.show()
plt.savefig('./../경기지역.png')
In [ ]:
df3_경기 = df1_pivot[2:3]
df3_경기
Out[ ]:
지역명 | 강원 | 경기 | 경남 | 경북 | 광주 | 대구 | 대전 | 부산 | 서울 | 세종 | 울산 | 인천 | 전남 | 전북 | 제주 | 충남 | 충북 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
월 | |||||||||||||||||
3 | 7491.925 | 12533.525 | 8584.8125 | 7924.7625 | 10016.8125 | 11502.45 | 9688.85 | 11760.014286 | 22726.9875 | 9820.5125 | 10354.2 | 12015.614286 | 7349.6 | 7264.25 | 11830.275 | 7751.35 | 7333.025 |
In [ ]:
df3_경기 = df3_경기.T
df3_경기
Out[ ]:
월 | 3 |
---|---|
지역명 | |
강원 | 7491.925000 |
경기 | 12533.525000 |
경남 | 8584.812500 |
경북 | 7924.762500 |
광주 | 10016.812500 |
대구 | 11502.450000 |
대전 | 9688.850000 |
부산 | 11760.014286 |
서울 | 22726.987500 |
세종 | 9820.512500 |
울산 | 10354.200000 |
인천 | 12015.614286 |
전남 | 7349.600000 |
전북 | 7264.250000 |
제주 | 11830.275000 |
충남 | 7751.350000 |
충북 | 7333.025000 |
In [ ]:
df3_경기.index
Out[ ]:
Index(['강원', '경기', '경남', '경북', '광주', '대구', '대전', '부산', '서울', '세종', '울산', '인천',
'전남', '전북', '제주', '충남', '충북'],
dtype='object', name='지역명')
In [ ]:
df3_경기.values
Out[ ]:
array([[ 7491.925 ],
[12533.525 ],
[ 8584.8125 ],
[ 7924.7625 ],
[10016.8125 ],
[11502.45 ],
[ 9688.85 ],
[11760.01428571],
[22726.9875 ],
[ 9820.5125 ],
[10354.2 ],
[12015.61428571],
[ 7349.6 ],
[ 7264.25 ],
[11830.275 ],
[ 7751.35 ],
[ 7333.025 ]])
In [ ]:
df3_경기.columns
Out[ ]:
Int64Index([3], dtype='int64', name='월')
In [61]:
city_category = df3_경기.index
num_patient = df3_경기.values.T
## 시각화
plt.figure(figsize=(12,8)) ## Figure 생성 사이즈는 10 by 10
colors = sns.color_palette('hls',len(city_category)) ## 색상 지정
xtick_label_position = list(range(len(city_category))) ## x축 눈금 라벨이 표시될 x좌표
plt.xticks(xtick_label_position, city_category) ## x축 눈금 라벨 출력
plt.bar(xtick_label_position, num_patient[0][:], color=colors) ## 바 차트 출력
plt.title('전국(2013 ~ 2021년) 3월 평당분양가격',fontsize=20) ## 타이틀 출력
plt.xlabel('지역명') ## x축 라벨 출력
plt.ylabel('평당분양가걱') ## y축 라벨 출력
# plt.show()
plt.savefig('./../경기지역.png')
In [7]:
df_pivot.index
Out[7]:
Int64Index([2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021], dtype='int64', name='연도')
In [8]:
df_pivot.values
Out[8]:
array([[ 6230. , 10855. , 6473. , 6168. ,
6098. , 8080. , 8321. , 8111. ,
18189. , 7601. , 8090. , 10204. ,
5678. , 6282. , 7674. , 6365. ,
6589. ],
[ 6332.5 , 10509.08333333, 6728.75 , 6536.5 ,
7587.83333333, 8286.08333333, 8240.33333333, 9180.16666667,
18997.25 , 8085.33333333, 8361.66666667, 10074.83333333,
5718.91666667, 6362.33333333, 7855.16666667, 6681.58333333,
6620. ],
[ 6855.30833333, 10487.8 , 7671.23333333, 7017.06363636,
7966.66666667, 8671.46 , 8088.03636364, 9631.16666667,
19163.84545455, 8623.56 , 9268.475 , 10291.275 ,
6120.575 , 6654.3 , 7458.13333333, 7017.36666667,
6697.92 ],
[ 7011.125 , 11220. , 7847.95 , 7375.5 ,
8937. , 10310.025 , 8501.625 , 10424.7 ,
20663.5 , 8860.5 , 10208.55 , 10533.27 ,
6488.625 , 6407.4 , 9458.13 , 7330.675 ,
6770.225 ],
[ 7170.625 , 11840.675 , 8163.925 , 7802.575 ,
9471. , 11507.1 , 9056.025 , 11663.575 ,
21425.25 , 9133.025 , 11327.525 , 10749.475 ,
7245.7 , 7074.65 , 10907.325 , 7455.8 ,
6770.225 ],
[ 7680.75 , 13185.975 , 9019.45 , 8505.2 ,
9855.725 , 12075.8 , 10180.225 , 12997.875 ,
22889.35 , 10354.85 , 10241.4 , 11273.9 ,
7789.1 , 7625.75 , 11890.725 , 8012.675 ,
7874.075 ],
[ 8141.65 , 14468.85 , 9870.85 , 8856.65 ,
11822.8 , 13852.025 , 11777.7 , 13116.4 ,
26131.05 , 11078.925 , 10022.1 , 12634.875 ,
7902.4 , 8196.65 , 12137.95 , 8606.95 ,
7574.6 ],
[ 9331.3 , 14383.325 , 10160.7 , 9544.975 ,
12500.125 , 15145.075 , 11094.05 , 13247.575 ,
26910.125 , 11355.3 , 12202.85 , 14674. ,
8696.875 , 8317.1 , 14540.9 , 8856.1 ,
7959.6 ],
[ 9679.725 , 14112.0375 , 10325.7 , 10251.0375 ,
13890.525 , 15463.8 , 11698.0875 , 14348.4 ,
29044.95 , 12538.35 , 14281.575 , 15211.7625 ,
9901.2375 , 8793.2625 , 23317.8 , 9229.6875 ,
8622.4875 ]])
In [9]:
df_pivot.columns
Out[9]:
Index(['강원', '경기', '경남', '경북', '광주', '대구', '대전', '부산', '서울', '세종', '울산', '인천',
'전남', '전북', '제주', '충남', '충북'],
dtype='object', name='지역명')
In [7]:
w = 0.056
local = df_pivot.columns
ticklabel = df_pivot.index
nrow = df_pivot.shape[0] # 행의 갯수
idx = np.arange(nrow) #행의 갯수를 리스트로
plt.figure(figsize = (7, 4))
plt.bar(idx - 8 * w, df_pivot['강원'], width = w, label='강원')
plt.bar(idx - 7 * w, df_pivot['경기'], width = w, label='경기')
plt.bar(idx - 6 * w, df_pivot['경남'], width = w, label='경남')
plt.bar(idx - 5 * w, df_pivot['경북'], width = w, label='경북')
plt.bar(idx - 4 * w, df_pivot['광주'], width = w, label='광주')
plt.bar(idx - 3 * w, df_pivot['대구'], width = w, label='대구')
plt.bar(idx - 2 * w, df_pivot['대전'], width = w, label='대전')
plt.bar(idx - w, df_pivot['부산'], width = w, label='부산')
plt.bar(idx, df_pivot['서울'], width = w, label='서울')
plt.bar(idx + w, df_pivot['세종'], width = w, label='세종')
plt.bar(idx + 2 * w, df_pivot['울산'], width = w, label='울산')
plt.bar(idx + 3 * w, df_pivot['인천'], width = w, label='인천')
plt.bar(idx + 4 * w, df_pivot['전남'], width = w, label='전남')
plt.bar(idx + 5 * w, df_pivot['전북'], width = w, label='전북')
plt.bar(idx + 6 * w, df_pivot['제주'], width = w, label='제주')
plt.bar(idx + 7 * w, df_pivot['충남'], width = w, label='충남')
plt.bar(idx + 8 * w, df_pivot['충북'], width = w, label='충북')
plt.title('전국 17개지역(2013.12월 ~ 2021.11월) 평당분양가격',fontsize=20) ## 타이틀 출력
plt.xlabel('년도') ## x축 라벨 출력
plt.ylabel('평당분양가걱') ## y축 라벨 출력
plt.xticks(idx,ticklabel) ## x축 눈금 라벨 출력
plt.legend(loc='upper right', bbox_to_anchor=(1.16,1))
# plt.show()
plt.savefig('price.png')
In [6]:
df1_pivot.index
Out[6]:
Int64Index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], dtype='int64', name='월')
In [8]:
df1_pivot.columns
Out[8]:
Index(['강원', '경기', '경남', '경북', '광주', '대구', '대전', '부산', '서울', '세종', '울산', '인천',
'전남', '전북', '제주', '충남', '충북'],
dtype='object', name='지역명')
In [13]:
w = 0.056
local = df1_pivot.columns
ticklabel = df1_pivot.index
nrow = df1_pivot.shape[0] # 행의 갯수
idx = np.arange(nrow) #행의 갯수를 리스트로
plt.figure(figsize = (10, 6))
plt.bar(idx - 8 * w, df1_pivot['강원'], width = w, label='강원')
plt.bar(idx - 7 * w, df1_pivot['경기'], width = w, label='경기')
plt.bar(idx - 6 * w, df1_pivot['경남'], width = w, label='경남')
plt.bar(idx - 5 * w, df1_pivot['경북'], width = w, label='경북')
plt.bar(idx - 4 * w, df1_pivot['광주'], width = w, label='광주')
plt.bar(idx - 3 * w, df1_pivot['대구'], width = w, label='대구')
plt.bar(idx - 2 * w, df1_pivot['대전'], width = w, label='대전')
plt.bar(idx - w, df1_pivot['부산'], width = w, label='부산')
plt.bar(idx, df1_pivot['서울'], width = w, label='서울')
plt.bar(idx + w, df1_pivot['세종'], width = w, label='세종')
plt.bar(idx + 2 * w, df1_pivot['울산'], width = w, label='울산')
plt.bar(idx + 3 * w, df1_pivot['인천'], width = w, label='인천')
plt.bar(idx + 4 * w, df1_pivot['전남'], width = w, label='전남')
plt.bar(idx + 5 * w, df1_pivot['전북'], width = w, label='전북')
plt.bar(idx + 6 * w, df1_pivot['제주'], width = w, label='제주')
plt.bar(idx + 7 * w, df1_pivot['충남'], width = w, label='충남')
plt.bar(idx + 8 * w, df1_pivot['충북'], width = w, label='충북')
plt.title('전국 17개지역 월 평당분양가격',fontsize=20) ## 타이틀 출력
plt.xlabel('월') ## x축 라벨 출력
plt.ylabel('평당분양가걱') ## y축 라벨 출력
plt.xticks(idx,ticklabel) ## x축 눈금 라벨 출력
plt.legend(loc='upper right', bbox_to_anchor=(1.13,1))
plt.show()
범례 위치 관련¶
Location String Location Code 설명
‘best’ 0 그래프의 최적의 위치에 표시합니다. (디폴트)
‘upper right’ 1 그래프의 오른쪽 위에 표시합니다.
‘upper left’ 2 그래프의 왼쪽 위에 표시합니다.
‘lower left’ 3 그래프의 왼쪽 아래에 표시합니다.
‘lower right’ 4 그래프의 오른쪽 아래에 표시합니다.
‘right’ 5 그래프의 오른쪽에 표시합니다.
‘center left
6 그래프의 왼쪽 가운데에 표시합니다.
‘center right
7 그래프의 오른쪽 가운데에 표시합니다.
‘lower center’
8 그래프의 가운데 아래에 표시합니다.
‘upper center
9 그래프의 가운데 위에 표시합니다.
‘center’ 10 그래프의 가운데에 표시합니다.
수학시간에 배운 x,y 좌표계를 생각해보자. 왼쪽 하단부가 (0, 0) 이고,
오른쪽 하단부가 (1, 0)이다. 그럼 왼쪽 상단부가 (0, 1), 오른쪽 상단부가 (1, 1) 임을 알 수 있다.
In [8]:
# from matplotlib import pyplot as plt
# import numpy as np
N = 5
r = range(N)
bars1 = np.random.binomial(20, .7, N)
bars2 = np.random.binomial(20, .5, N)
bars3 = np.random.binomial(20, .4, N)
colors = ['#7f6d5f', '#557f2d', '#2d7f5e']
labels = ["Lasso", "Random Forest", "Decision Tree"]
barWidth = 1
lefts = 0
for bars, col, label in zip([bars1, bars2, bars3], colors, labels):
plt.barh(r, bars, left=lefts, color=col, edgecolor='white', height=barWidth, label=label)
lefts += bars
plt.legend()
plt.ylim(-0.5, len(bars) - 0.5)
plt.show()
In [15]:
# 년도
year = [2018, 2019, 2020, 2021, 2022]
# 만명 단위
physics = [6.2,6.3 ,6.0 ,5.9 ,6.8]
chemistry = [10.6,9.4 ,8.0 ,8.0 ,8.0]
life = [16.1,16.3 ,13.9 ,13.1 ,14.7]
earth = [16.7,17.7 ,16.1 ,13.0 ,14.9]
science = {
"year" : year,
"physics" : physics,
"chemistry" : chemistry,
"life" : life,
"earth" : earth
}
sci = pd.DataFrame(science)
sci
Out[15]:
year | physics | chemistry | life | earth | |
---|---|---|---|---|---|
0 | 2018 | 6.2 | 10.6 | 16.1 | 16.7 |
1 | 2019 | 6.3 | 9.4 | 16.3 | 17.7 |
2 | 2020 | 6.0 | 8.0 | 13.9 | 16.1 |
3 | 2021 | 5.9 | 8.0 | 13.1 | 13.0 |
4 | 2022 | 6.8 | 8.0 | 14.7 | 14.9 |
In [25]:
w = 0.15
nrow = sci.shape[0] # 행의 갯수
idx = np.arange(nrow) #행의 갯수를 리스트로
plt.figure(figsize = (10, 5))
plt.bar(idx - 2 * w, sci['physics'], width = w)
plt.bar(idx - w, sci['chemistry'], width = w)
plt.bar(idx, sci['life'], width = w)
plt.bar(idx + w, sci['earth'], width = w)
# plt.bar(idx + 2 * w, sci['total'], width = w)
plt.legend()
plt.show()
No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
In [94]:
w = 0.056
local = df_pivot.columns # 지역명
ticklabel = df_pivot.index # 년도
nrow = df_pivot.shape[0] # 행의 갯수
idx = np.arange(nrow) #행의 갯수를 리스트로
a = [-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]
plt.figure(figsize = (9, 6))
for a1, b1 in zip(local, a) :
plt.bar(idx - b1 * w, df_pivot[a1], width = w, label=a1)
plt.title('전국 17개지역(2013 ~ 2021.11월) 평당분양가격',fontsize=20) ## 타이틀 출력
plt.xlabel('년도') ## x축 라벨 출력
plt.ylabel('평당분양가걱') ## y축 라벨 출력
plt.xticks(idx,ticklabel) ## x축 눈금 라벨 출력
plt.legend(loc='upper right', bbox_to_anchor=(1.13,1))
# plt.show()
plt.savefig('price.png')
'[PL] > Python' 카테고리의 다른 글
TKINTER 동적버튼 (0) | 2023.05.07 |
---|---|
python 가상환경 node.js(npm) 설치 (0) | 2022.10.03 |
[Django] check_password() (0) | 2022.07.16 |
ipynb -> html, ipynb -> py 변환 (0) | 2022.01.26 |
[Python] for loop관련 예제 (0) | 2022.01.25 |