Hi, just started working with streamlit and I’ve got a problem with empty spaces showing up on the app pages. I can only imagine it’s coming from inside the functions I’m calling but not sure what to do. I’m working in VSCode and calling functions to display plotly graphs like this:
def ageRange():
# ages = df.iloc[:,4].value_counts().sort_values(ascending = True)
# Q4 Pie chart
# set plot size
plt.rcParams['figure.figsize'] = [6,6]
# Creating font properties using fontdict
font = {'family':'Baskerville', 'color':'black', 'size':24}
labels = ['NA','Pre-school', 'Secondary School', 'Primary School', 'All Ages']
sizes = [1, 5, 10, 85, 99]
colours = ['#35193e', '#f37651', '#ad1658','#701f58', '#e13442' ]
explode = (0.01, 0.1, 0.1, 0.02, 0.02)
# function to hide label if percent below 2 e.g for NA
def my_autopct(pct):
return ('%1.1f%%' % pct) if pct > 2 else ''
fig3, ax3 = plt.subplots()
patches, texts, autotexts = ax3.pie(sizes, colors = colours, labels=labels, autopct=my_autopct, startangle = 90, pctdistance = 0.85, explode = explode)
# change label colours
[text.set_color('black') for text in texts]
[text.set_size(9) for text in texts]
texts[0].set_size(0)
texts[3].set_size(12)
texts[4].set_size(12)
[autotext.set_color('white') for autotext in autotexts]
[autotext.set_size(8)for autotext in autotexts]
# draw circle: drawing a circle centered at (0,0)
centre_circle=plt.Circle((0,0), 0.70, fc ='white')
fig3 = plt.gcf()
fig3.gca().add_artist(centre_circle)
# Equal aspect ratio to make sure pie is drawn as a circle
ax3.axis('equal')
plt.tight_layout()
# Add title
ax3.set_title("Proportions of Age Ranges experiencing Anxiety",fontdict = font, x=.45, y = .94)
return(fig3)
elif options == 'Ages Affected':
# app layout
st.pyplot(ageRange())
st.markdown("Of 2
Should I be nesting this function somehow? Not sure that plotly will catch the plots and axes if I start doing that. Any help appreciated.
This is what it looks like on the app