import streamlit as st import pandas as pd import plotly.express as px from datetime import datetime from github_analytics.singular_analysis_chat import predict_df def create_bubble_chart(repo_data): # Extract data from repo_data if not repo_data: return None labels = [repo['name'] for repo in repo_data] stars = [repo['stargazers_count'] for repo in repo_data] forks = [repo['forks_count'] for repo in repo_data] created_at = [datetime.strptime(repo['created_at'], "%Y-%m-%dT%H:%M:%SZ") for repo in repo_data] # age = [(datetime.now() - created) for created in created_at] age = [(datetime.now() - created).days for created in created_at] # Create a DataFrame df = pd.DataFrame({ 'name': labels, 'stars': stars, 'forks': forks, 'age': age }) # Create a Plotly bubble chart fig = px.scatter( df, x='forks', y='stars', size='age', hover_data=['name', 'forks', 'stars', 'age'], size_max=60 # Adjust the maximum bubble size ) # Customize the chart fig.update_layout( title='Stars vs. Forks', xaxis_title='Number of Forks', yaxis_title='Number of Stars', hovermode='closest', width=800, height=600 ) response = predict_df(df) return st.plotly_chart(fig), st.write(response)