AliMustapha commited on
Commit
bf620e1
·
1 Parent(s): 66c5935

modify plots by includint %

Browse files
Files changed (2) hide show
  1. app.py +4 -5
  2. plot.py +21 -5
app.py CHANGED
@@ -19,7 +19,7 @@ class GenderPredictorApp:
19
  histo_chart = gr.Plot()
20
  data_output =gr.Dataframe(headers=None)
21
  # name_buttom = gr.Button("Predict")
22
- interface2_fn = gr.Interface(self.predict_github_url, inputs=name, outputs=[pie_chart_output, data_output,histo_chart], title="GitGender: Exploring Global Gender Disparities in Public Code Contributions")
23
  demo = gr.TabbedInterface([interface1_fn, interface2_fn], ["Test Model", "Exploring Diversity in GitHub Repositories"])
24
  self.demo = demo
25
 
@@ -42,8 +42,8 @@ class GenderPredictorApp:
42
  df,first_commit_dates = commit_info.get_first_commit_dates()
43
  first_commit_dates[['Predicted_Gender', 'Confidence']] = first_commit_dates['Author'].apply(lambda name: pd.Series(self.gender_predictor.predict_gender(name)))
44
  first_commit_dates['Predicted_Gender'] = first_commit_dates['Predicted_Gender'].replace({0: "Male", 1: "Female", 2: "Unknown"})
45
- counts = first_commit_dates['Predicted_Gender'].value_counts()
46
-
47
 
48
  # ******************************
49
  merged_df = df.merge(first_commit_dates[["Author","Predicted_Gender","Confidence"]], on=["Author"])
@@ -52,10 +52,9 @@ class GenderPredictorApp:
52
 
53
 
54
 
55
- Gender_Percentage=plot.get_gender_percentage(first_commit_dates)
56
  fig=plot.get_commits_per_gender(commit_per_gender_counts)
57
  # Convert the chart to HTML and return it
58
- return Gender_Percentage,first_commit_dates[["Author","Author_Timezone","Predicted_Gender"]],fig
59
  def launch(self):
60
  self.demo.launch()
61
 
 
19
  histo_chart = gr.Plot()
20
  data_output =gr.Dataframe(headers=None)
21
  # name_buttom = gr.Button("Predict")
22
+ interface2_fn = gr.Interface(self.predict_github_url, inputs=name, outputs=[pie_chart_output, histo_chart,data_output], title="GitGender: Exploring Global Gender Disparities in Public Code Contributions")
23
  demo = gr.TabbedInterface([interface1_fn, interface2_fn], ["Test Model", "Exploring Diversity in GitHub Repositories"])
24
  self.demo = demo
25
 
 
42
  df,first_commit_dates = commit_info.get_first_commit_dates()
43
  first_commit_dates[['Predicted_Gender', 'Confidence']] = first_commit_dates['Author'].apply(lambda name: pd.Series(self.gender_predictor.predict_gender(name)))
44
  first_commit_dates['Predicted_Gender'] = first_commit_dates['Predicted_Gender'].replace({0: "Male", 1: "Female", 2: "Unknown"})
45
+ Gender_Percentage=plot.get_gender_percentage(first_commit_dates)
46
+
47
 
48
  # ******************************
49
  merged_df = df.merge(first_commit_dates[["Author","Predicted_Gender","Confidence"]], on=["Author"])
 
52
 
53
 
54
 
 
55
  fig=plot.get_commits_per_gender(commit_per_gender_counts)
56
  # Convert the chart to HTML and return it
57
+ return Gender_Percentage,fig,first_commit_dates[["Author","Author_Timezone","Predicted_Gender"]]
58
  def launch(self):
59
  self.demo.launch()
60
 
plot.py CHANGED
@@ -2,17 +2,32 @@ import plotly.graph_objects as go
2
  from plotly.subplots import make_subplots
3
 
4
  def get_commits_per_gender(gender_counts):
5
- male_count=gender_counts[gender_counts["Predicted_Gender"]=="Male"]
6
- female_count=gender_counts[gender_counts["Predicted_Gender"]=="Female"]
 
 
 
 
 
 
 
 
7
  fig = make_subplots(rows=1, cols=1, shared_xaxes=True)
 
8
  fig.add_trace(
9
- go.Bar(x=male_count['Year'], y=male_count['Count'], name='Male'),
 
 
10
  row=1, col=1
11
  )
 
12
  fig.add_trace(
13
- go.Bar(x=female_count['Year'], y=female_count['Count'], name='Female'),
 
 
14
  row=1, col=1
15
  )
 
16
  fig.update_layout(
17
  height=400,
18
  xaxis=dict(title="gender commits per year"),
@@ -25,4 +40,5 @@ def get_gender_percentage(df):
25
  counts = df['Predicted_Gender'].value_counts()
26
  colors = ["blue", "pink", "gray"]
27
  Gender_Percentage_plot = go.Figure(data=[go.Pie(labels=df['Predicted_Gender'].unique(), values=counts, marker=dict(colors=colors))])
28
- return Gender_Percentage_plot
 
 
2
  from plotly.subplots import make_subplots
3
 
4
  def get_commits_per_gender(gender_counts):
5
+ gender_counts=gender_counts[gender_counts["Predicted_Gender"]!="Unknown"]
6
+
7
+ grouped = gender_counts.groupby('Year').agg({'Count': 'sum'})
8
+ grouped['Male Percentage'] = gender_counts[gender_counts['Predicted_Gender'] == 'Male'].groupby('Year')['Count'].sum() / grouped['Count'] * 100
9
+ grouped['Female Percentage'] = gender_counts[gender_counts['Predicted_Gender'] == 'Female'].groupby('Year')['Count'].sum() / grouped['Count'] * 100
10
+ grouped=grouped.fillna(0)
11
+ merged_gender_counts = grouped.merge(gender_counts[["Year","Predicted_Gender"]], on=["Year"])
12
+
13
+ male_count=merged_gender_counts[merged_gender_counts["Predicted_Gender"]=="Male"]
14
+ female_count=merged_gender_counts[merged_gender_counts["Predicted_Gender"]=="Female"]
15
  fig = make_subplots(rows=1, cols=1, shared_xaxes=True)
16
+ # Add bars for Male and Female counts
17
  fig.add_trace(
18
+ go.Bar(x=male_count['Year'], y=male_count['Count'], name='Male',
19
+ hovertemplate='Male Percentage: %{customdata:.2f}', # Use customdata for the hovertemplate
20
+ customdata=male_count['Male Percentage']), # Use the 'Male Percentage' column for customdata
21
  row=1, col=1
22
  )
23
+
24
  fig.add_trace(
25
+ go.Bar(x=female_count['Year'], y=female_count['Count'], name='Female',
26
+ hovertemplate='Female Percentage: %{customdata:.2f}', # Use customdata for the hovertemplate
27
+ customdata=female_count['Female Percentage']), # Use the 'Female Percentage' column for customdata
28
  row=1, col=1
29
  )
30
+
31
  fig.update_layout(
32
  height=400,
33
  xaxis=dict(title="gender commits per year"),
 
40
  counts = df['Predicted_Gender'].value_counts()
41
  colors = ["blue", "pink", "gray"]
42
  Gender_Percentage_plot = go.Figure(data=[go.Pie(labels=df['Predicted_Gender'].unique(), values=counts, marker=dict(colors=colors))])
43
+ return Gender_Percentage_plot
44
+