matplotlib - matplotlib plot 在 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)
结果是这样的:
具有相同 figsize 的 jupyter 笔记本中的相同绘图没有此问题。为什么会发生这种情况,我该如何解决这个问题?
解决方案
我正在复制并粘贴您收到的关于以下问题的 Streamlit 论坛的回复:
“嘿@mjspier - 感谢您查看 Streamlit!
figsize 参数值以英寸为单位,因此在这种情况下,您将生成一个预期为 25 英寸宽的图像。然后,Streamlit 将该图像缩小到 Streamlit 的最大可显示宽度,大约为 1500 像素,因此会出现模糊。
一个简单的解决方法是传递一个小的 figsize。(figsize 中的每英寸约为 1000 像素,因此 (15, 3) 的 figsize 看起来不那么模糊。)
我还为此打开了一个错误,这样我们至少会做一些比在 figsize 非常大时显示丑陋图像不那么出人意料的事情。”
希望这可以帮助!
推荐阅读
- jquery - 如何使用 jQuery 获取 td 标签中输入标签的值
- php - 如何在 plesk centos7 上安装 ffmpeg php 扩展
- c# - c# BeginReceive 回调
- javascript - AXIOS:如何同时运行http请求并在请求失败时获取所有请求事件的结果
- cygwin - 为什么 cygwin 安装会创建不同的 `bin/cyg*.dll` 文件?
- jquery - 如何使自定义滑块以编程方式切换图片
- javascript - 使用 lightGallery 和 Jekyll:TypeError: $(...).lightGallery is not a function
- javascript - $.each 在函数未定义(没有作品)
- r - 传单永远加载,永远不会在 RStudio 中显示
- amazon-web-services - Amazon EMR 使用 Spot 实例作为核心,使用 Terraform 的主节点