Spaces:
Sleeping
Sleeping
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) | |