Barış Sanlı
barissanli2@gmail.com
24 Kasım 2022
Türkiye enerji denge tablolarının Eurostat veritabanındaki versiyonu kullanılarak, 1990-2020 arası sanayi alt kırılımındaki tüketimin değişimi gösterilmektedir.
Veriler Eurostat veritabanından alınıp, Plotly ile interaktif grafiklere dönüştürülmüştür.
Grafikleri incelerken, Türkiye'nin enerji istatistik verilerindeki iyileşme ile verilerdeki değişim de gözlenmektedir. Özellikle 2009 sonrası ve 2015 sonrası olmak üzere, verinin daha detaylandırıldığı ve geçişlerin daha düzgün göründüğü bir istatistik altyapısına geçildiği düşünülmektedir.
Bunun en net kısmını "diğer" sanayi sektöründeki kırılımlı toplamın azalmasından anlıyoruz.
Türkçe isimlenmdirmede, ingilizcesine en yakın isimler kullanılmaya çalışılmıştır. Ama örneğin "Transport Equipment" imalatı uzun uzun ulaştırma ekipmanları imalatı yerine "ulaştırma" olarak adlandırılmıştır.
# ile kodun açıklamaları da yazılmıştır.
# veritabanını indirmeden önce mevcut dizinde olup olmadığına bakacağız, bu kütüphane onun için
from os import path
# bu kısımı kullanmıyoruz ama resim kaydetmek için bıraktım
#Image export using the "kaleido" engine requires the kaleido package,
#which can be installed using pip:
# $ pip install -U kaleido
# resim dosyalarını kaydetmek için
%pylab inline
%pylab is deprecated, use %matplotlib inline and import the required libraries. Populating the interactive namespace from numpy and matplotlib
# etkileşimli grafikler için plotly kütüphaneleri
import plotly.express as px
import plotly.io as io
import plotly
# bu satırın amacı, Jupyter'den export ettiğimizde etkileşimli html'ler elde etmek
plotly.offline.init_notebook_mode()
# veriler eurostat kütüphanesinden yok ise
# !pip install eurostat
import eurostat
import pandas as pd
# indireceğimiz kitaplık nrg_bal_c, fakat bunu nrg_bal_c-2022 olarak saklayacağız
# veri tabanı çok büyük 328 megabyte
# daha önce indirdiysek, indirilenden oku, indirilmediyse indir
if path.exists("nrg_bal_c-2022"):
df=pd.read_pickle("nrg_bal_c-2022")
else:
df=eurostat.get_data_df('nrg_bal_c')
df.to_pickle("nrg_bal_c-2022")
# eurostat kodları biraz çok karışık, onlardan kullanacaklarımızı Türkçe'ye çevirelim
# ULAŞTIRMA kodu ingilizce Transport Equipment yani Otomotiv ve Ulaştırma Makineleri
sektor_kod= ['FC_E','FC_IND_CON_E', 'FC_IND_CPC_E', 'FC_IND_E', 'FC_IND_FBT_E', 'FC_IND_IS_E',
'FC_IND_MAC_E','FC_IND_MQ_E', 'FC_IND_NE', 'FC_IND_NFM_E', 'FC_IND_NMM_E',
'FC_IND_NSP_E', 'FC_IND_PPP_E', 'FC_IND_TE_E', 'FC_IND_TL_E',
'FC_IND_WP_E']
sektor_isim=["NihaiTüketim","İnşaat", "Petkim","Toplam","Gıda","Çelik","Makine",
"Maden","EnerjiDışı","Metal","Seramik", "Diğer","Kağıt","Ulaştırma","Tekstil",
"Ahşap"
]
# Yakıt kodları ve ne anlama geldiği, eurostat yakıt kodlarının karşılıkları ve Türkçeleri
yakit_kod= [
"C0000X0350-0370", #solid fossil fuels
"G3000", #natural gas
"O4000XBIO", #oil
"E7000", # electricity
"RA000", # renewable
"TOTAL"
]
yakit_isim= ["Kömür","Gaz","Petrol","Elektrik","Yenilenebilir", "Toplam"]
# kodları isimlerle değiştir ki okuduğumuzu anlayalım
df["nrg_bal"].replace(sektor_kod,sektor_isim , inplace=True)
df["siec"].replace(yakit_kod,yakit_isim , inplace=True)
# veride sadece bu sektör ve yakıtları bırak, diğerlerini sil
df1=df[df['nrg_bal'].isin(sektor_isim)]
df2=df1[df1['siec'].isin(yakit_isim)]
# tüm grafikleri yapan fonksiyon bu
def sektor_grafik(sektor="Toplam", tip="percent" ):
# önce ihtiyacımız olan Sektörü, bin ton eşdeğer (KTOE) ve Türkiye için filtrele, olmayan veri satırlarını sil
dft=df2[((df2.nrg_bal==sektor) & (df2.unit=="KTOE") & (df2['geo\\time']=='TR'))].dropna()
# veriyi takla attır: Transpose
dftTx=dft.T
# başlıkların isimlerini yakıt isimlerine çevir
dftTx.columns= dft.siec
# kullanmadığımız satır/sütunları sil
dftTx.drop(['geo\\time','unit','siec','nrg_bal'],inplace=True)
# 2020'den 1990'yerine, 1990'dan 2020'ye sırala
dftTx=dftTx.reindex(index=dft.T.index[::-1])[:-4]
# yılları tamsayıya, sütunları noktalı sayılara dönüştür
dftTx=dftTx.astype(float)/1000.0
dftTx.index=dftTx.index.astype(str).astype(int)
# tüm sütun 0 ise sil
# dftTx=dftTx.loc[:, (dftTx != 0).any(axis=0)]
# eğer grafik türü "percent" ise y ekseni başlığını %'ye değiştir'
if tip=="percent":
title_t="Yüzde(%) Pay"
title_b=sektor+" Sektörünün Enerji Tüketiminin Kaynaklara Göre Dağılımı "
else:
title_t="Milyon Ton Eşdeper Petrol (MTEP)"
title_b=sektor+" Sektörünün Enerji Tüketimi"
if sektor=="NihaiTüketim":
title_b="Türkiye Nihai Enerji Tüketimi"
if sektor=="Toplam":
title_b="Toplam Sanayi Sektörü Enerji Tüketimi"
#yığımlı alan grafiği
fig = px.area(dftTx,
x=dftTx.index,
y=dftTx.columns[:-1],
groupnorm=tip)
# başlığı ortala, lejantın adını değiştir
fig.update_layout(
legend_title="Kaynaklar",
legend={'traceorder':'reversed'},
title = {'xanchor': 'center',
'x':0.5,
'text': title_b})
fig.update_xaxes(title_text = 'Yıl')
fig.update_yaxes(title_text = title_t)
# Grafikleri kaydetmek için
# fig.write_image("images/"+sektor+"-"+tip+".png")
# fig.update_yaxes(tickformat=".2s") # will format to 2 sigfigs
fig.show()
# Karanlık temayı seç, diğer temalar io.templates 'de'
io.templates.default = 'plotly_dark'
#tüm sektörler için önce yığım sonra pay grafiklerini çiz
for i in sektor_isim:
sektor_grafik(i,tip="")
sektor_grafik(i,tip="percent")