Merhabalar,
Bu yazımda data analiz aşamasında işimizi oldukça kolaylaştıran bir yöntem olan veri görselleştirme üzerinde duracağım. Grafik türlerini göstermeye çalışırken aklıma gelen tüm özellikleri grafiklere koymaya çalıştım. Sizler grafikleri kullanırken işinize yaramayan kodları çıkartabilirsiniz.
Aynı satırda/sütunda birden fazla grafik çizdirmemizi ve ilişkileri daha rahat görmemizi sağlayan subplot konusuna ayrı değineceğim. Subplot için buraya tıklayabilirsiniz.
İncelemek istediğiniz grafiğin adına tıklayarak grafiğin kodunun yazımına doğrudan ilerleyebilirsiniz. İlerlediğiniz sayfadan tekrar menüye dönmek için grafik adına tıklamanız yeterlidir.
Bu yazımda değineceğim grafik türleri:
1)LINE PLOTGrafik türleri görmeye başlamadan önce bazı görselleştirme kütüphanelerini import etmek gerekiyor. Bu kütüphaneler ; seaborn, matplotlib, squarify. Aynı grafiği verecek farklı kütüphaneler ya da aynı grafiği verecek daha kısa bir yol da mutlaka vardır. Bu tarz bilgilerinizi yorumlarda yazarsanız herkesin yararlanmasını sağlayabilirsiniz.
import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline import squarify #tree map için kullanıldı. import seaborn as sns
import yfinance as yf #sizde yüklü değil ise jupyter notebooklarınızda !pip install yfinance komutu ile yükleyebilirsiniz. data = yf.download('AAPL','2020-01-01','2022-10-16') data.head()
plt.figure(figsize=(10,5)) # çizilecek grafiğin boyutunu belirlemek için kullanılır. plt.title("AAPL hissesinin zamana bağlı kapanış fiyatı") #grafiğin başlığı plt.xlabel("Tarih") #x ekseninin ismini plt.ylabel("Kapanış Fiyatı") #y ekseninin ismini plt.axvline(x=data.index[data.Close.argmax()], linewidth=2, color='b',label="Fiyatın en yüksek olduğu zaman") #dikey çizgi plt.axhline(y=data.Close.max()*0.95, linewidth=2, color='g',label="Maksimum fiyatın %95'i") #yatay çizgi plt.axvspan(data.index[data.Close.argmax()+20], data.index[data.Close.argmax()+50], facecolor='y', alpha=0.5) #dikey taralı bölge plt.axhspan(80, 100, facecolor='c', alpha=0.5) #yatay taralı bölge #1. LINE PLOT plt.plot(data["Close"], # çizilecek değişken '--', #çizim şekli linewidth=1, #çizgi kalınlığı markersize=3, #işaretleyicinin boyutu color="red", #grafiğin rengi marker="o", #işaretleyicinin şekli label="AAPL Close hisse fiyatı" #grafiğin açıklaması ) #2. LINE PLOT plt.plot(data["Adj Close"]-20, # çizilecek değişken '--', #çizim şekli linewidth=1, #çizgi kalınlığı markersize=3, #işaretleyicinin boyutu color="black", #grafiğin rengi marker="o", #işaretleyicinin şekli label="AAPL Adj Close hisse fiyatı" #grafiğin açıklaması ) plt.xticks(rotation=45) #x eksenindeki etiketlerin yazılma açısı plt.yticks(rotation=30)#y eksenindeki etiketlerin yazılma açısı plt.yticks(np.arange(min(data.Close), max(data.Close)+1, 25)) #y ekseninin gösterim aralığı plt.annotate('en yüksek nokta', xy=(data.index[data.Close.argmax()],data.Close.max()), xytext=(data.index[data.Close.argmax()+50],data.Close.max()+10), arrowprops=dict(facecolor='black', shrink=0.05)) # ok ile gösterim. Örnekte en yüksek nokta gösterilmiştir. plt.legend() # grafiğe verdiğimiz labelların görülmesini sağlar plt.grid() # ızgara görünümü vermek için kullanılır. plt.savefig('AAPL_lineplot.png') # görseli kaydetmek için plt.show() # grafiği göstermek için kullanılır.
data=pd.DataFrame({"kategori":["A","B","C","D","E","F","G","H","I","J","K"], "deger":[100,250,75,225,140,200,150,240,230,110,55]}) data
plt.figure(figsize=(10,5)) # çizilecek grafiğin boyutunu belirlemek için kullanılır. plt.title("Kategorilere göre değer gösterimi") #grafiğin başlığı plt.xlabel("Kategori") #x ekseninin ismini plt.ylabel("Değer") #y ekseninin ismini bar_chart=plt.bar(data["kategori"], # çizilecek değişken x ekseni data["deger"], # çizilecek değişken x ekseni width=0.4, color = 'darkgreen', alpha = 0.85) bar_chart[0].set_color('darkred') plt.plot(data['kategori'] , data['deger'].cumsum(), c='red') #kümülatif toplamı göstermek istersek for i in range(len(data)): plt.text(x=data["kategori"][i] , y =data["deger"][i]+3, s=f"{data.deger[i]}",fontdict=dict(fontsize=10)) #değerleri yazdırmak için plt.xticks(rotation=45) #x eksenindeki etiketlerin yazılma açısı plt.yticks(rotation=30)#y eksenindeki etiketlerin yazılma açısı plt.grid() # ızgara görünümü vermek için kullanılır. plt.savefig('barplot1.png') # görseli kaydetmek için plt.show() # grafiği göstermek için kullanılır.
data=data.sort_values("deger",ascending=False) plt.figure(figsize=(10,5)) # çizilecek grafiğin boyutunu belirlemek için kullanılır. plt.title("Kategorilere göre değer gösterimi") #grafiğin başlığı plt.xlabel("Kategori") #x ekseninin ismini plt.ylabel("Değer") #y ekseninin ismini bar_chart=plt.bar(data["kategori"], # çizilecek değişken x ekseni data["deger"], # çizilecek değişken x ekseni width=0.4, color = 'darkgreen', alpha = 0.85) bar_chart[0].set_color('darkred') #plt.plot(data['kategori'] , data['deger'].cumsum(), c='red') #kümülatif toplamı göstermek istersek for i in range(len(data)): plt.text(x=data["kategori"][i] , y =data["deger"][i]+3, s=f"{data.deger[i]}",fontdict=dict(fontsize=10)) #değerleri yazdırmak için plt.xticks(rotation=45) #x eksenindeki etiketlerin yazılma açısı plt.yticks(rotation=30)#y eksenindeki etiketlerin yazılma açısı plt.grid() # ızgara görünümü vermek için kullanılır. plt.savefig('barplot2.png') # görseli kaydetmek için plt.show() # grafiği göstermek için kullanılır.
titanic = sns.load_dataset('titanic') titanic.head()
titanic_pivot=pd.pivot_table(index="embarked",columns="who",values="fare",data=titanic).round(0) titanic_pivot
ax=titanic_pivot.plot(kind="bar",stacked=True,color=["blue","red","yellow"]) for bar in ax.patches: height = bar.get_height() width = bar.get_width() x = bar.get_x() y = bar.get_y() label_text = height label_x = x + width / 2 label_y = y + height / 2 ax.text(label_x, label_y, label_text, ha='center', va='center') plt.savefig('stackedbarplot.png') plt.show()
titanic_pivot.plot(kind="barh",stacked=True,color=["blue","red","yellow"]) b1 = plt.barh(titanic_pivot.index, titanic_pivot["child"], color="red",height=0.5) b2 = plt.barh(titanic_pivot.index, titanic_pivot["man"], color="yellow" ,height=0.5) b3 = plt.barh(titanic_pivot.index, titanic_pivot["woman"], color="blue",height=0.5) plt.legend([b1, b2,b3], ["child", "man","woman"], title="", loc="upper right") plt.savefig('stackedbarhplot.png') plt.show()
sns.set(style='white') sns.barplot(x="embarked", y="fare", hue='who', data=titanic, palette=['purple', 'steelblue',"blue"],ci=None) plt.xlabel('Embarked') plt.ylabel('Fare') plt.savefig('groupedbarhplot.png') plt.show()
tips=sns.load_dataset("tips") tips.head()
plt.figure(figsize=(5,5)) plt.title("Total Bill quartile gösterimi") sns.boxplot(y="total_bill",data=tips,palette="Blues",width=0.5,notch=True, flierprops={"marker": "x"},medianprops={"color": "red"}) plt.savefig('boxplot.png') plt.show()
plt.figure(figsize=(10,5)) sns.boxplot(data=titanic, x="class", y="age", hue="alive") plt.savefig('boxplotikidegisken.png') plt.show()
titanic_gr=titanic.groupby(["class"]).size().reset_index() titanic_gr.columns=["class","toplam"] titanic_gr
plt.figure(figsize=(6,6)) plt.pie(titanic_gr.toplam, labels = titanic_gr["class"], autopct='%1.1f%%', explode=(0.25, 0, 0) ) plt.title('Pie chart') plt.axis('equal') plt.savefig('piechart.png') plt.show()
np.random.seed(10) df = pd.DataFrame(np.random.random((15,15)), columns=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o"]) df.head()
plt.figure(figsize=(10,5)) sns.heatmap(df, annot=True, annot_kws={"size": 7},linewidths=2, linecolor='yellow', xticklabels=4) plt.savefig('heatmap.png') plt.show()
data = [500,400,700,800,600] alan = ["A","B","C","D","E"] squarify.plot(data, label=alan,pad=2,value=data,color=["red","green","blue", "grey","orange","yellow"],alpha=0.4) plt.axis("off") plt.savefig('treemap.png') plt.show()
plt.figure(figsize=(10,5)) sns.scatterplot(data=tips, x="total_bill", y="tip", hue="size", palette="deep") plt.title("Total bill- tip dağılımı") plt.savefig('scatterplot.png') plt.show()











Yorumlar
Yorum Gönder