график 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 очень велик ".

Надеюсь это поможет!

Другие вопросы по тегам