import pandas as pd import plotly.express as px import plotly.graph_objects as go # Read the CSV file into a Pandas DataFrame file_path = "texts_by_period_and_location_saparated_by_periods_in_columns.csv" df = pd.read_csv(file_path) # Define the columns to summarize columns_to_summarize = ["ancient", "old", "middle", "new", "late"] # Group the data by the "place" column and calculate sums within each group grouped = df.groupby("place")[columns_to_summarize].sum().reset_index() # Create a bar chart using Plotly fig = go.Figure() # Add a bar trace for each category for col in columns_to_summarize: fig.add_trace(go.Bar(x=grouped["place"], y=grouped[col], name=col)) # Customize the layout fig.update_layout( title="Summary of Categories by Place with Filtering", xaxis_title="Place", yaxis_title="Total Count", xaxis=dict(categoryorder='total descending'), barmode='group' ) # Show the interactive graph fig.show()