Penguni commited on
Commit
0084a36
1 Parent(s): afb97aa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -1
app.py CHANGED
@@ -124,6 +124,24 @@ def create_treemap(df, title):
124
  fig = px.treemap(df, path=['parentalguide'], title=title)
125
  return fig
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  # Function to create genre bar chart
128
  def create_genre_bar_chart(df, title):
129
  df_exploded = df.explode('genre')
@@ -192,7 +210,7 @@ if selection_movies:
192
  st.plotly_chart(create_country_map(df_movies, 'Global Distribution of Movies'), use_container_width=True)
193
  with col2_2:
194
  st.plotly_chart(create_rating_box_chart(df_movies, 'Rating Distribution - Movies'), use_container_width=True)
195
-
196
  elif selection_tv_series:
197
  st.subheader('TV Series')
198
  display_summary_metrics(df_tv_series)
@@ -206,3 +224,4 @@ elif selection_tv_series:
206
  st.plotly_chart(create_country_map(df_tv_series, 'Global Distribution of TV Series'), use_container_width=True)
207
  with col2_2:
208
  st.plotly_chart(create_rating_box_chart(df_tv_series, 'Rating Distribution - TV Series'), use_container_width=True)
 
 
124
  fig = px.treemap(df, path=['parentalguide'], title=title)
125
  return fig
126
 
127
+ def create_best_genres_line_chart(df, title):
128
+ # Combine genres data from both movies and TV series
129
+ df_genres = df.explode('genre')
130
+
131
+ # Group by year and genre to count occurrences
132
+ genre_counts = df_genres.groupby(['year', 'genre']).size().reset_index(name='count')
133
+
134
+ # Find the most popular genre by count for each year
135
+ idx = genre_counts.groupby(['year'])['count'].transform(max) == genre_counts['count']
136
+ best_genres = genre_counts[idx]
137
+
138
+ # Plotly line chart for best genres over the years
139
+ fig_best_genres = px.line(best_genres, x='year', y='count', color='genre', title=title)
140
+ fig_best_genres.update_layout(xaxis_title='Year', yaxis_title='Number of Works', legend_title='Genre')
141
+
142
+ return fig_best_genres
143
+
144
+
145
  # Function to create genre bar chart
146
  def create_genre_bar_chart(df, title):
147
  df_exploded = df.explode('genre')
 
210
  st.plotly_chart(create_country_map(df_movies, 'Global Distribution of Movies'), use_container_width=True)
211
  with col2_2:
212
  st.plotly_chart(create_rating_box_chart(df_movies, 'Rating Distribution - Movies'), use_container_width=True)
213
+ st.plotly_chart(create_best_genres_line_chart(df_movies, 'Best Genres Over the Years - Movies'), use_container_width=True)
214
  elif selection_tv_series:
215
  st.subheader('TV Series')
216
  display_summary_metrics(df_tv_series)
 
224
  st.plotly_chart(create_country_map(df_tv_series, 'Global Distribution of TV Series'), use_container_width=True)
225
  with col2_2:
226
  st.plotly_chart(create_rating_box_chart(df_tv_series, 'Rating Distribution - TV Series'), use_container_width=True)
227
+ st.plotly_chart(create_best_genres_line_chart(df_tv_series, 'Best Genres Over the Years - TV Series'), use_container_width=True)