график matplotlib имеет плохое разрешение в потоковом режиме
В приложении с оптимизированной подсветкой при попытке построить фигуры в формате, отличном от стандартного, я получаю очень плохие разрешения.
Пример:
import pandas as pd
import numpy as np
import streamlit as st
index = pd.date_range(start='2019-01-01', periods=31)
data = np.random.randint(0,100,size=(len(index)))
df = pd.DataFrame(index=index, data=data)
df.plot(figsize=(25, 5), antialiased=True)
st.pyplot(dpi=100)
Результат в таком сюжете:
Тот же сюжет в блокноте jupyter с тем же размером фиг не имеет этой проблемы. Почему это происходит и как я могу исправить эту проблему?
1 ответ
Я копирую и вставляю ответ форума Streamlit, который вы получили на этот вопрос ниже:
"Привет, @mjspier - спасибо, что попробовали Streamlit!
Значения параметра figsize указаны в дюймах, поэтому в этом случае вы создаете изображение шириной 25 дюймов. Затем Streamlit сжимает это изображение до максимальной отображаемой ширины Streamlit, которая составляет около 1500 пикселей, отсюда и размытость.
Легкое решение - передать небольшой фиг. (Каждый дюйм в фигуре составляет ~1000 пикселей, поэтому фигура (15, 3) будет выглядеть менее размытой.)
Я также обнаружил ошибку по этому поводу, чтобы мы, по крайней мере, сделали что-то менее неожиданное, чем показ уродливого изображения, когда figsize очень велик ".
Надеюсь это поможет!