krishaamer commited on
Commit
32173b7
·
1 Parent(s): 859d2b1

Visualize investment data

Browse files
Files changed (1) hide show
  1. page_investing.py +30 -7
page_investing.py CHANGED
@@ -12,10 +12,13 @@ def show(df):
12
  st.title("Investing")
13
  st.markdown(
14
  f"<h2 style='text-align: center;'>Investing Experience (Overall)</h2>", unsafe_allow_html=True)
15
- show_investment_count(df, font_prop=chinese_font)
 
 
 
16
 
17
 
18
- def show_investment_count(df, font_prop):
19
  # Count the number of people who have invested and who have not
20
  investment_count = df["你/妳覺得目前有任何投資嗎?"].value_counts().reset_index()
21
  investment_count.columns = ['Investment', 'Count']
@@ -24,17 +27,37 @@ def show_investment_count(df, font_prop):
24
  plt.figure(figsize=(10, 6))
25
  barplot = sns.barplot(x='Investment', y='Count', data=investment_count, palette='viridis')
26
  ax = plt.gca() # Get the current Axes instance on the current figure matching the given keyword args, or create one.
27
- ax.set_xticklabels(ax.get_xticklabels(), fontproperties=font_prop)
28
 
29
  # Add labels and title
30
- plt.xlabel('Do you currently have any investment?', fontsize=12, fontproperties=font_prop)
31
- plt.ylabel('Count', fontsize=12, fontproperties=font_prop)
32
- plt.title("Number of People Who Have/Haven't Invested", fontsize=16, fontproperties=font_prop)
33
 
34
  # Display values on the bars
35
  for index, value in enumerate(investment_count['Count']):
36
- plt.text(index, value, str(value), ha='center', va='bottom', fontproperties=font_prop)
37
 
38
  # Display the chart in Streamlit
39
  st.pyplot(plt)
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  st.title("Investing")
13
  st.markdown(
14
  f"<h2 style='text-align: center;'>Investing Experience (Overall)</h2>", unsafe_allow_html=True)
15
+ show_investment_count(df, chinese_font)
16
+ st.markdown(
17
+ f"<h2 style='text-align: center;'>Choice Experiment</h2>", unsafe_allow_html=True)
18
+ visualize_investment_data(df, chinese_font)
19
 
20
 
21
+ def show_investment_count(df, chinese_font):
22
  # Count the number of people who have invested and who have not
23
  investment_count = df["你/妳覺得目前有任何投資嗎?"].value_counts().reset_index()
24
  investment_count.columns = ['Investment', 'Count']
 
27
  plt.figure(figsize=(10, 6))
28
  barplot = sns.barplot(x='Investment', y='Count', data=investment_count, palette='viridis')
29
  ax = plt.gca() # Get the current Axes instance on the current figure matching the given keyword args, or create one.
30
+ ax.set_xticklabels(ax.get_xticklabels(), fontproperties=chinese_font)
31
 
32
  # Add labels and title
33
+ plt.xlabel('Do you currently have any investment?', fontsize=12, fontproperties=chinese_font)
34
+ plt.ylabel('Count', fontsize=12, fontproperties=chinese_font)
35
+ plt.title("Number of People Who Have/Haven't Invested", fontsize=16, fontproperties=chinese_font)
36
 
37
  # Display values on the bars
38
  for index, value in enumerate(investment_count['Count']):
39
+ plt.text(index, value, str(value), ha='center', va='bottom', fontproperties=chinese_font)
40
 
41
  # Display the chart in Streamlit
42
  st.pyplot(plt)
43
 
44
+ def visualize_investment_data(df, chinese_font):
45
+
46
+ # Field related to investment choices
47
+ investment_field = "你/妳選哪個投資?"
48
+ title = "Investment Choices"
49
+
50
+ # Summarize the data
51
+ investment_data = df[investment_field].value_counts().head(100) # Adjust the number as needed
52
+
53
+ # Plot the data
54
+ plt.figure(figsize=(10, 6))
55
+ investment_data.plot(kind='bar', color='skyblue')
56
+ plt.title(title, fontproperties=chinese_font)
57
+ plt.xlabel('Investment Options', fontproperties=chinese_font)
58
+ plt.ylabel('Number of Responses', fontproperties=chinese_font)
59
+ plt.xticks(rotation=45, ha='right', fontproperties=chinese_font)
60
+ plt.tight_layout()
61
+
62
+ # Display plot in Streamlit
63
+ st.pyplot(plt)