Estou tentando construir um aplicativo simplificado que facilite a exploração dos dados do censo dos EUA. Estou usando o pacote censusdis para obter e renderizar os dados, e abaixo está um trecho do meu programa que reproduz o problema:
import streamlit as st
import censusdis.data as ced
import censusdis.maps as cem
from censusdis.datasets import ACS5
df = ced.download(dataset=ACS5,
vintage=2022,
download_variables=['NAME', 'B19013_001E'],
state='01',
county='*',
with_geometry=True)
st.dataframe(df[['NAME', 'B19013_001E']], hide_index=True)
cem.plot_map(df, 'B19013_001E', legend=True, with_background=True)
st.pyplot()
O código "funciona", mas gera este aviso:
PyplotGlobalUseWarning: You are calling st.pyplot() without any arguments. After December 1st, 2020, we will remove the ability to do this as it requires the use of Matplotlib's global figure object, which is not thread-safe.
To future-proof this code, you should pass in a figure as shown below:
>>> fig, ax = plt.subplots()
>>> ax.scatter([1, 2, 3], [1, 2, 3])
>>> ... other plotting actions ...
>>> st.pyplot(fig)
Eu não sei como consertar isso. Eu tentei fazer:
st.pyplot(cem.plot_map(df, 'B19013_001E', legend=True, with_background=True))
Mas isso gerou este erro (sem aviso):
AttributeError: 'Axes' object has no attribute 'savefig'