kayyshf's picture
Upload 4 files
00d1f6c verified
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)