Öncelikle merhaba bu konuda benim de yeni öğrendiğim grafik oluşturmayı basit bir şekilde kullanmayı anlatacağım.
Ben PyCharm -benim için en rahat IDE- üzerinden yapacağım.


Son olarak şöyle bir sonuç alıyoruz.

Bu fonksiyonları kullanmak için gerekli olan kütüphaneler:
Yüklemek için ise Anaconda veya Console'u açarak
Eğer yanlış ve eksik anlattığım bir yer varsa lütfen doğrusuyla beraber uyarın.
Ben PyCharm -benim için en rahat IDE- üzerinden yapacağım.
Kod:
Ben veriler.xlsx belgeme [B][URL='https://covid19.saglik.gov.tr/TR-66935/genel-koronavirus-tablosu.html']buradan[/URL] [/B]1-22 Aralık arası aldığım verileri ekledim.
[ATTACH type="full" alt="resim_2020-12-23_170633.png"]56851[/ATTACH][/CENTER]
[CODE=python sütunundaki değerleri string olarak değiştirdim.
veriler["Toplam Vaka Sayısı"] = veriler["Toplam Vaka Sayısı"].astype(int) # içeriğini okuttuğum veriler dosyasından "Toplam Vaka Sayısı" sütunundaki değerleri int olarak değiştirdim.
# artık "veriler" listemdeki sütunları ayrı listelere aktaracağım
labels, values = [], [] # 2 yeni liste oluşturdum
# labels listeme tarihleri ekliyorum.
for i in veriler["Tarih"]:
labels.append(i)
# values listeme toplam vaka sayılarını ekliyorum.
for i in veriler["Toplam Vaka Sayısı"]:
values.append(i)
# değerler yukarıdan aşağı yani ters bir şekilde eklendiği için listelerdeki sıralamayı tam tersine çeviriyorum
labels.reverse()
values.reverse()
Şimdi ise asıl kısıma geçebiliriz.
Kod:
) # grafiğin genişliğini buradan ayarlayacağız. figsize[0] = genişlik, figsize[1] = uzunluk. ben 20, 10 yaptım 2000x1000'e denk geliyor.
plt.style.use("bmh") # yazarak grafiğin görünüşünü değiştiriyorum çünkü standart olan halinde arkada çizgiler yok.
plt.rcParams["axes.formatter.limits"] = 0, 100 # yazıyorum çünkü asıl halinde -5, 6'dır ve uzun sayı değerleri 1e6 şeklinde yazılıyor hoş gözükmediği için bu şekilde uzun yazmaya ayarlıyorum.
# istersek plt.rcParams["axes.formatter.use_mathtext"] = True yazarak ve üsttekini yazmayarak x10⁶ gibi görünüm de elde edebiliriz.
plt.title("Grafik") # burada ise grafiğin üzerinde yazacak başlığı belirliyoruz
# plt.gcf().set_size_inches(int(len(labels[0]) * 1.2 + 20), plt.gcf().get_size_inches()[1]) # bu ise x ekseninde yazacağımız tarihler arasındaki boşluğu belirlememize yarıyor ama önceden ayarladığımız grafik genişliğini değiştirebilir (uzun bir grafik oluşturmuyorsanız gerekli değil.).
plt.xlabel("TARİHLER") # bu şekilde x ekseninin başlığını belirliyoruz, altında yazacak olan.
plt.ylabel("SAYI") # aynı şekilde y ekseninin başlığını belirliyoruz. y eksenindeki başlık dik bir şekilde yazdığı için istersek rotation=0 parametresini ekleyebiliriz.
plt.xticks(rotation=65) # yazarak tarihlerin biraz daha rahat okunması için x eksenindeki değerleri döndürüyoruz.
# eğer lejant oluşturmak istersek plt.legend(loc=0) yazarak otomatik olarak oluşturmasını sağlayabiliriz. loc=0 en iyi konum anlamına geliyor.
plt.tight_layout() # yazarak oluşacak grafiğin tam olarak boyutunu belirlediğimiz tuvale tam olarak oturmasınız sağlıyoruz. (gerekli değil)
plt.plot(labels, values, "b", linewidth=3, label="Toplam Vaka Sayısı", marker="o") # ve bununla birlikte grafiğimize çizgiyi ekliyoruz. sırasıyla 1. parametre x eksenindekiler 2. parametre y eksenindekiler 3. parametre çizgi rengi veya çizgi türü (b blue demek) 4. çizgi kalınlığı 5. parametre eğer lejant kullanırsak ayırt etmek için kullanılacak isim 6. parametre her değişim noktasında bulunacak işaret (o = daire)
# plt.savefig("isim") ile .png olarak kaydedebiliriz.
plt.show() # diyerek grafiğimizi gösteriyoruz
Python:
import matplotlib.pyplot as plt
import pandas as pd
veriler = pd.read_excel("veriler.xlsx")
veriler["Tarih"] = veriler["Tarih"].astype(str)
veriler["Toplam Vaka Sayısı"] = veriler["Toplam Vaka Sayısı"].astype(int)
labels, values = [], []
for i in veriler["Tarih"]:
labels.append(i)
for i in veriler["Toplam Vaka Sayısı"]:
values.append(i)
labels.reverse()
values.reverse()
if __name__ == "__main__":
plt.figure(figsize=[20, 10])
plt.style.use("bmh")
plt.rcParams["axes.formatter.limits"] = 0, 100
plt.title("Grafik")
plt.xlabel("TARİHLER")
plt.ylabel("SAYI")
plt.xticks(rotation=65)
plt.plot(labels, values, "b", linewidth=3, label="Toplam Vaka Sayısı", marker="o")
plt.show()
Son olarak şöyle bir sonuç alıyoruz.
Bu fonksiyonları kullanmak için gerekli olan kütüphaneler:
matplotlib==3.3.2
pandas==1.1.5Yüklemek için ise Anaconda veya Console'u açarak
pip install kütüphaneadı yapabilirsiniz.Eğer yanlış ve eksik anlattığım bir yer varsa lütfen doğrusuyla beraber uyarın.
Ekli dosyalar
Son düzenleme: