halimbahae commited on
Commit
1407118
·
verified ·
1 Parent(s): 599ef61

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -2
app.py CHANGED
@@ -1,8 +1,8 @@
1
- # zodiac_app.py (Streamlit version)
2
  import streamlit as st
3
  import pandas as pd
4
  import datetime
5
  import matplotlib.pyplot as plt
 
6
  import io
7
 
8
  # Data: zodiac signs with date ranges and personality traits
@@ -56,8 +56,37 @@ def get_zodiac_sign(month: int, day: int) -> str:
56
  return sign
57
  return None
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  # Streamlit UI
60
- st.title('Zodiac App')
61
 
62
  # Horoscope Section
63
  st.header('Get Your Horoscope and Personality Traits')
@@ -71,6 +100,15 @@ if birthdate:
71
  st.subheader(f"Your zodiac sign is: {sign}")
72
  st.write(f"Personality Traits: {', '.join(traits)}")
73
 
 
 
 
 
 
 
 
 
 
74
  # Compatibility Section
75
  st.header('Check Compatibility Between Two Zodiac Signs')
76
 
 
 
1
  import streamlit as st
2
  import pandas as pd
3
  import datetime
4
  import matplotlib.pyplot as plt
5
+ import numpy as np
6
  import io
7
 
8
  # Data: zodiac signs with date ranges and personality traits
 
56
  return sign
57
  return None
58
 
59
+ # Function to create radar chart
60
+ def create_radar_chart(traits, values, sign):
61
+ num_vars = len(traits)
62
+
63
+ # Compute the angle for each trait (360 degrees divided by number of traits)
64
+ angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()
65
+
66
+ # The plot needs to be circular, so we repeat the first value to close the loop
67
+ values += values[:1]
68
+ angles += angles[:1]
69
+
70
+ # Create the radar chart
71
+ fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
72
+
73
+ # Plot the data
74
+ ax.fill(angles, values, color='blue', alpha=0.25)
75
+ ax.plot(angles, values, color='blue', linewidth=2) # Outline of the chart
76
+
77
+ # Set the labels for each axis (the traits)
78
+ ax.set_yticklabels([]) # Remove the radial ticks
79
+ ax.set_xticks(angles[:-1]) # Set the ticks for each trait
80
+ ax.set_xticklabels(traits, color='black', fontsize=12)
81
+
82
+ # Add the title
83
+ ax.set_title(f'{sign} Personality Traits', size=14, color='black', fontweight='bold')
84
+
85
+ # Show the radar chart
86
+ return fig
87
+
88
  # Streamlit UI
89
+ st.title('Zodiac Matcher')
90
 
91
  # Horoscope Section
92
  st.header('Get Your Horoscope and Personality Traits')
 
100
  st.subheader(f"Your zodiac sign is: {sign}")
101
  st.write(f"Personality Traits: {', '.join(traits)}")
102
 
103
+ # Display Radar Chart for Zodiac Sign
104
+ trait_values = [9, 10, 8, 9] # Example trait values for the radar chart (can be adjusted)
105
+ fig = create_radar_chart(traits, trait_values, sign)
106
+
107
+ buf = io.BytesIO()
108
+ fig.savefig(buf, format='png')
109
+ buf.seek(0)
110
+ st.image(buf)
111
+
112
  # Compatibility Section
113
  st.header('Check Compatibility Between Two Zodiac Signs')
114