File size: 4,886 Bytes
e37b6bd a2cfa15 e37b6bd a2cfa15 | 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
st.set_page_config(
page_title="Olympic Games Data Visualization",
page_icon="🏅",
layout="wide"
)
st.title("🏅 Olympic Games Data Visualization")
st.write(
"Bu uygulama, Olimpiyat Oyunları verilerini kullanarak ülke, sporcu, spor dalı, "
"madalya ve ev sahibi şehirler üzerine görselleştirme analizleri sunar."
)
@st.cache_data
def load_data():
athlete_bio = pd.read_csv("src/Olympic_Athlete_Biography.csv")
athlete_event = pd.read_csv("src/Olympic_Athlete_Event_Details.csv")
games = pd.read_csv("src/Olympic_Games_Summary.csv")
medals = pd.read_csv("src/Olympic_Medal_Tally_History.csv")
return athlete_bio, athlete_event, games, medals
athlete_bio, athlete_event, games, medals = load_data()
st.sidebar.title("Grafik Seçimi")
grafik = st.sidebar.selectbox(
"Bir grafik seçin:",
[
"En Çok Madalya Kazanan Ülkeler",
"En Fazla Altın Madalya Kazanan Ülkeler",
"Yıllara Göre Toplam Madalya",
"En Çok Madalya Kazanılan Spor Dalları",
"En Çok Madalya Kazanan Sporcular",
"En Çok Olimpiyat Düzenleyen Şehirler",
"Yıllara Göre Katılan Ülke Sayısı",
"Kadın ve Erkek Sporcu Dağılımı"
]
)
if grafik == "En Çok Madalya Kazanan Ülkeler":
st.subheader("En Çok Madalya Kazanan 15 Ülke")
top_countries = (
medals.groupby("country")["total"]
.sum()
.sort_values(ascending=False)
.head(15)
)
fig, ax = plt.subplots(figsize=(10, 6))
top_countries.sort_values().plot(kind="barh", ax=ax)
ax.set_title("En Çok Madalya Kazanan 15 Ülke")
ax.set_xlabel("Toplam Madalya")
ax.set_ylabel("Ülke")
st.pyplot(fig)
elif grafik == "En Fazla Altın Madalya Kazanan Ülkeler":
st.subheader("En Fazla Altın Madalya Kazanan 15 Ülke")
top_gold = (
medals.groupby("country")["gold"]
.sum()
.sort_values(ascending=False)
.head(15)
)
fig, ax = plt.subplots(figsize=(10, 6))
top_gold.sort_values().plot(kind="barh", ax=ax)
ax.set_title("En Fazla Altın Madalya Kazanan 15 Ülke")
ax.set_xlabel("Altın Madalya")
ax.set_ylabel("Ülke")
st.pyplot(fig)
elif grafik == "Yıllara Göre Toplam Madalya":
st.subheader("Yıllara Göre Toplam Madalya Sayısı")
yearly_medals = medals.groupby("year")["total"].sum()
fig, ax = plt.subplots(figsize=(12, 5))
ax.plot(yearly_medals.index, yearly_medals.values)
ax.set_title("Yıllara Göre Toplam Madalya Sayısı")
ax.set_xlabel("Yıl")
ax.set_ylabel("Toplam Madalya")
st.pyplot(fig)
elif grafik == "En Çok Madalya Kazanılan Spor Dalları":
st.subheader("En Çok Madalya Kazanılan Spor Dalları")
top_sports = (
athlete_event["sport"]
.value_counts()
.head(15)
)
fig, ax = plt.subplots(figsize=(10, 6))
top_sports.sort_values().plot(kind="barh", ax=ax)
ax.set_title("En Çok Madalya Kazanılan Spor Dalları")
ax.set_xlabel("Madalya Sayısı")
ax.set_ylabel("Spor Dalı")
st.pyplot(fig)
elif grafik == "En Çok Madalya Kazanan Sporcular":
st.subheader("En Çok Madalya Kazanan Sporcular")
top_athletes = (
athlete_event["athlete"]
.value_counts()
.head(15)
)
fig, ax = plt.subplots(figsize=(10, 6))
top_athletes.sort_values().plot(kind="barh", ax=ax)
ax.set_title("En Çok Madalya Kazanan Sporcular")
ax.set_xlabel("Madalya Sayısı")
ax.set_ylabel("Sporcu")
st.pyplot(fig)
elif grafik == "En Çok Olimpiyat Düzenleyen Şehirler":
st.subheader("En Çok Olimpiyat Düzenleyen Şehirler")
top_city = games["city"].value_counts().head(15)
fig, ax = plt.subplots(figsize=(10, 6))
top_city.sort_values().plot(kind="barh", ax=ax)
ax.set_title("En Çok Olimpiyat Düzenleyen Şehirler")
ax.set_xlabel("Olimpiyat Sayısı")
ax.set_ylabel("Şehir")
st.pyplot(fig)
elif grafik == "Yıllara Göre Katılan Ülke Sayısı":
st.subheader("Yıllara Göre Katılan Ülke Sayısı")
country_per_year = medals.groupby("year")["country"].nunique()
fig, ax = plt.subplots(figsize=(12, 5))
ax.plot(country_per_year.index, country_per_year.values)
ax.set_title("Yıllara Göre Katılan Ülke Sayısı")
ax.set_xlabel("Yıl")
ax.set_ylabel("Ülke Sayısı")
st.pyplot(fig)
elif grafik == "Kadın ve Erkek Sporcu Dağılımı":
st.subheader("Kadın ve Erkek Sporcu Dağılımı")
gender_counts = athlete_bio["sex"].value_counts()
fig, ax = plt.subplots(figsize=(7, 7))
ax.pie(
gender_counts,
labels=gender_counts.index,
autopct="%1.1f%%"
)
ax.set_title("Kadın ve Erkek Sporcu Dağılımı")
st.pyplot(fig) |