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) | |