728x90
연도별 전체 재생에너지 합계 중 각 에너지원의 비율 시각화
데이터 전처리
왼쪽의 9행 8열 데이터에서 63행 3열 데이터로 변환하기
연도 - 구분 - 발전량 순서로 각 해당 년도의 해당하는 에너지원의 발전량을 볼 수 있도록 전처리
1. 발전량 행단위로 추출하여 통합한 df_temp1 만들기
df_temp1 = df_temp.iloc[0,1:]
for i in range(1,len(df_temp)):
df_temp1 = pd.concat([df_temp1 , df_temp.iloc[i,1:]] )
# list = [i for i in df_temp1.index]
df_temp1 = df_temp1.values
df_temp1
2. 총 7번씩 2013-2021 이 들어간 리스트 만들기
list2 = []
for i in range(2013,2022):
for j in range(7):
list2.append(i)
list2
3. 컬럼명(연도 제외) 을 연도마다 반복하는 리스트 만들기
list3 = []
while len(list3) < 63:
for i in range(1,8):
list3.append(df_temp.columns[i])
list3
4. 세개의 컬럼(연도 - 구분 - 발전량) 을 가진 데이터 프레임 만들기
df_temp2 = pd.DataFrame()
df_temp2["연도"] = list2
df_temp2["구분"] = list3
df_temp2["발전량"] = df_temp1
df_temp2
시각화를 진행하던중 데이터 프레임에 재생에너지 합계가 필요가 없다고 판단되어 삭제하고 위와 똑같은 방식으로
전처리 해줬다.
시각화
원그래프로 시각화
우선 하나의 원 그래프로 표현 (2013년)
plt.figure(figsize=(10,5))
plt.title("2013년 재생에너지원별 발전량 비율")
values = df_temp2[df_temp2["연도"] == 2013]["발전량"]
labels = df_temp2[df_temp2["연도"] == 2013]["구분"]
plt.pie( values , labels = labels, autopct= "%1.1f%%")
plt.show()
subplot 이용하여 원그래프로 연도별 재생에너지별발전량 비율 표현
explode : 그래프에서 해당 지표가 떨어져있는 정도 조정
counterclock = False : 시계방향 순서로 자료 표현
fig , axs = plt.subplots(5,2,figsize = (15,25))
axs = axs.flatten()
for i , ax in zip(range(2013,2022), axs):
ax.set_title(f"{i}년 재생에너지원별 발전량 비율")
values = df_temp2[df_temp2["연도"] == i]["발전량"]
labels = df_temp2[df_temp2["연도"] == i]["구분"]
explode = [0.10,0,0,0,0,0.05]
colors = ['#DF826C','#9BB8CD','#5FBDFF',"#FFE382","#65B741",'#C69774']
ax.pie( values , labels = labels, colors = colors, autopct= "%1.1f%%",startangle= 260,counterclock=False, explode=explode, shadow=True)
plt.savefig("./img/재생에너지원별발전량비율_원그래프.png")
plt.show()
히스토그램으로 시각화
- 정확한 그래프인지 의문
plt.figure(figsize=(20,8))
plt.title("연도별 재생에너지 발전량")
sns.histplot(data = df_temp2 , x = "연도" , bins = 30 ,
kde= True , hue = "구분" , multiple="stack",
stat="percent" , shrink= 0.6 )
plt.savefig("./img/재생에너지원별발전량비율_histplot.png")
plt.show()
막대그래프로 시각화
plt.figure(figsize=(20,8))
plt.title("연도별 재생에너지원별 발전량")
sns.barplot(x = "연도" , y = "발전량" , hue = "구분" , data = df_temp2 ,palette="pastel")
plt.savefig("./img/재생에너지원별발전량비율_막대그래프.png")
plt.show()
선그래프로 시각화
plt.figure(figsize=(15,12))
plt.title("연도별 재생에너지원별 발전량")
sns.lineplot(x="연도", y="발전량", hue="구분", data=df_temp2, marker='o', linestyle='dashed', markersize=8)
# 각 데이터 포인트에 데이터 값을 표시
for line in range(df_temp2.shape[0]):
plt.text(df_temp2["연도"].iloc[line], df_temp2["발전량"].iloc[line], f"{df_temp2['발전량'].iloc[line]:.0f}",
color='black', ha='center', va='bottom')
plt.savefig("./img/재생에너지원별발전량비율_선그래프.png")
plt.show()
[해석]
- 재생에너지원(태양광, 풍력, 수력, 해양, 바이오, 폐기물) 중에서 점진적으로 발전량이 증가하는 발전원은 태양광, 바이오, 풍력.
- 폐기물의 경우에는 2018년 이후 발전량이 대폭 하락함.
- 대기 질 개선에 폐기물 발전량 감소가 영향을 미치지 않았을까 예상됨.
연도별 전체 발전량 중 재생에너지 발전량 비교 시각화
데이터 전처리
df_temp3 = pd.concat([df[df["지역"]=="전국"]["연도"] , df[df["지역"]=="전국"]["지역"],df[df["지역"]=="전국"]["재생에너지합계"],df[df["지역"]=="전국"]["최종총발전량"]], axis=1 , ignore_index=False)
df_temp3
지역 == 전국에 해당하는 데이터 중 연도 , 지역 , 재생에너지합계 , 총 발전량 컬럼을 가져옴
시각화
연도별 재생에너지 발전량 변화 추이 시각화
plt.figure(figsize=(7,4))
plt.title("연도별 재생에너지 총발전량")
plt.bar(df_temp3["연도"],df_temp3["재생에너지합계"],color = "#9ACD32" ,width=0.6 )
plt.plot( df_temp3["연도"],df_temp3["재생에너지합계"] , marker="o",color = "#6B8E23")
for line in range(df_temp3.shape[0]):
plt.text(df_temp3["연도"].iloc[line], df_temp3['재생에너지합계'].iloc[line],f"{df_temp3['재생에너지합계'].iloc[line]:.0f}",
color='black', ha='center', va='bottom')
plt.xticks(df_temp3["연도"])
plt.xlabel("연도")
plt.ylabel("발전량(MWh)")
plt.savefig("./img/연도별재생에너지총발전량2.png")
plt.show()
연도별 전체 발전량과 재생에너지 발전량 비교 시각화
plt.figure(figsize=(10,4))
plt.title("연도별 전체 발전량 중 재생에너지 발전량 ")
plt.bar(df_temp3["연도"]+0.2,df_temp3["최종총발전량"],color = "#DED3A6" ,width=0.3 , label = "전체 발전량" )
plt.plot( df_temp3["연도"],df_temp3["최종총발전량"] , marker="o",color = "#D2B48C")
plt.bar(df_temp3["연도"]-0.2,df_temp3["재생에너지합계"],color = "#9ACD32" ,width=0.3 , label="재생에너지 발전량")
plt.plot( df_temp3["연도"],df_temp3["재생에너지합계"] , marker="o",color = "#759242")
for line in range(df_temp3.shape[0]):
plt.text(df_temp3["연도"].iloc[line], df_temp3['재생에너지합계'].iloc[line],f"{df_temp3['재생에너지합계'].iloc[line]:.0f}",
color='black', ha='center', va='bottom')
for line in range(df_temp3.shape[0]):
plt.text(df_temp3["연도"].iloc[line], df_temp3['최종총발전량'].iloc[line],f"{df_temp3['최종총발전량'].iloc[line]:.0f}",
color='black', ha='center', va='bottom')
plt.xticks(df_temp3["연도"])
plt.xlabel("연도")
plt.ylabel("발전량(MWh)")
plt.legend()
plt.savefig("./img/연도별전체발전량_재생에너지발전량2.png")
plt.show()
[해석]
- 재생에너지 발전량은 점진적으로 증가하는 추세.
- 그러나 전체 발전량 중에서 차지하는 비율은 아직 적음.
- 따라서 재생에너지를 사용한 전력 생산의 증가 필요성이 있다고 판단됨.
728x90
'Project' 카테고리의 다른 글
[데이터분석 미니프로젝트] - 웹크롤링 데이터 워드 클라우드 (3) | 2023.12.11 |
---|---|
[데이터분석 미니프로젝트] 재생에너지 발전량( Plotly , Streamlit 사용법) (2) | 2023.12.10 |
[데이터분석 미니프로젝트] - 수질데이터 시각화 / 에너지원별 발전량 데이터 전처리 (0) | 2023.12.08 |
[데이터분석 미니프로젝트] - 수질 정보 데이터 전처리 (4) | 2023.12.07 |
[데이터 분석] 국내 여행지역 관심도 분석(2) (0) | 2023.12.04 |