matplotlib图在streamlit中具有不良分辨率

时间:2019-11-29 12:34:45

标签: matplotlib streamlit

在精简的应用程序中,当尝试绘制格式与标准格式不同的图形时,我得到了非常差的分辨率。

示例:

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)

这样的绘图结果:

enter image description here

在具有相同无花果大小的jupyter笔记本中的相同绘图不存在此问题。 为什么会发生这种情况,我该如何解决此问题?

1 个答案:

答案 0 :(得分:1)

我要复制并粘贴您收到的以下问题的response from the Streamlit Forum

“嘿@mjspier-感谢您检查Streamlit!

figsize参数值以英寸为单位,因此,在这种情况下,您生成的图像原应为25英寸宽。然后,Streamlit将图像缩小到Streamlit的最大可显示宽度,该宽度约为1500像素,因此很模糊。

一个简单的解决方法是传递一个小的figsize。 (figsize的每英寸约为1000像素,因此(15,3)的figsize看起来会减少模糊。)

我还打开了一个有关此问题的错误,因此,与我们在figsize很大时显示丑陋的图像相比,我们所做的至少至少是意想不到的事情。”

希望这会有所帮助!