#python #matplotlib #seaborn #heatmap #streamlit
#python #matplotlib #seaborn #тепловая карта #потоковая передача
Вопрос:
Я создаю тепловую карту в seaborn и отображаю ее на потоковой панели. Сгенерированное изображение содержит много пробелов сверху и снизу.
#creating heatmap
df= df[['x','y','z']]
df_temp = df.pivot_table(index=x,
columns=y,
values= z)
plt.figure(figsize=(13, 80))
clr = sns.color_palette("RdBu", 7)
ax = sns.heatmap(df_temp, annot=True, fmt='.1f',cmap=clr, cbar=False);
#set x axis label on top
ax.xaxis.set_ticks_position('top')
# split axes of heatmap to put colorbar
ax_divider = make_axes_locatable(ax)
# define size and padding of axes for colorbar
cax = ax_divider.append_axes('top', size = '0.2%', pad = '1%')
# make colorbar for heatmap.
# Heatmap returns an axes obj but you need to get a mappable obj (get_children)
colorbar(ax.get_children()[0], cax = cax, orientation = 'horizontal')
# locate colorbar ticks
cax.xaxis.set_ticks_position('top')
Вывод изображения
Я использую st.pyplot для рендеринга этого на dashbaord с потоковой передачей
Буду признателен за любую помощь.
P.S он корректно отображается в Jupyter notebook
Комментарии:
1. вы устанавливаете высоту вашего изображения на 80 дюймов. Это пространство должно быть чем-то заполнено. Каков ваш ожидаемый результат здесь? Что тепловая карта растягивается, чтобы заполнить этот пробел? Или что этот рисунок обрезан, чтобы более разумно соответствовать тепловой карте?
2. @tmdavison хотел бы, чтобы тепловая карта заполняла пробелы. т. е. тепловая карта должна начинаться прямо под верхней синей полосой. Тепловая карта содержит около 100 строк. Изображение, которое я добавил, является его обрезанной версией.
3. если вы сохраните ссылку на свой рисунок
fig = plt.figure(...)
, то вы можете использоватьfig.subplots_adjust(top=0.99, bottom=0.02)
для корректировки пробелов. Отрегулируйте эти значения в соответствии с вашими потребностями