码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • streamlit自定义图表大小 (用components渲染pyecharts等)


            streamlit能够很方便地将图表渲染在网页上,所以可以很方便地部署在服务器上。但是它渲染图表时,默认宽高无法改变,这就为用户想更清晰地了解数据情况设置了一定的障碍。

            本文使用components渲染pyecharts图表,从而实现了图表自定义大小。

    先看效果:

            上方折线图是用普通方式添加的,无法自定义宽高,下图是用components渲染的,可以自定义高度。

            第一幅图是streamlit默认的方法添加,代码:

    1. import streamlit_echarts
    2. from pyecharts.charts import Line
    3. from pyecharts import options as opts
    4. columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    5. line = Line().add_xaxis(columns)
    6. line.width = '1000px'
    7. data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
    8. data2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
    9. line.add_yaxis(series_name="降水量", y_axis=data1, label_opts=opts.LabelOpts(is_show=True))
    10. line.add_yaxis(series_name="蒸发量", y_axis=data2, label_opts=opts.LabelOpts(is_show=True))
    11. streamlit_echarts.st_pyecharts(
    12. line
    13. )

    这种方法,仅仅是将pyecharts的图当做完整的组件整体添加,效果如下图,比较扁平。 

             而修改后的代码,将pyecharts的折线图,先转换成html文本,然后再用components添加,就能够实现自定义组件的大小了。

    1. import streamlit_echarts
    2. from pyecharts.charts import Line
    3. from pyecharts import options as opts
    4. import streamlit.components.v1 as components #将要展示的 弄成html
    5. line2 = Line().add_xaxis(columns)
    6. line2.height = '550px' # 设置高度
    7. line2.width = '900px'
    8. data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
    9. data2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
    10. line2.add_yaxis(series_name="降水量", y_axis=data1, label_opts=opts.LabelOpts(is_show=True))
    11. line2.add_yaxis(series_name="蒸发量", y_axis=data2, label_opts=opts.LabelOpts(is_show=True))
    12. line2Html = line2.render_embed() #将折线组件转换成html文本
    13. components.html(line2Html,height=900, width=900) #在主页面用streamlit静态组件的方式渲染pyecharts

            效果如下图,很显然,它高了许多。

             使用components渲染pyecharts图表,从而实现了图表自定义大小。

    参考资料:

    https://www.jianshu.com/p/554d64470ec9

    https://pyecharts.org/#/zh-cn/rectangular_charts?id=line:折线面积图

    https://docs.streamlit.io/library/components/components-api

  • 相关阅读:
    【数据结构-队列 二】【单调队列】滑动窗口最大值
    函数调用方式_stdcall 、 _cdecl 、_thiscall
    许可分析 license分析 第十一章
    详解Number()、parseInt()、parseFloat()的区别
    jQuery总结
    Linux CentOS 8(DNS的配置与管理)
    替换Series中的值replace()函数
    VR智慧景区,为游客开启智慧旅游新时代
    【RISC-V】risc-v架构学习笔记(架构初学)
    ssh服务中如何批量管理100多台机器(Paramiko、 psutil模块)、跳板机(堡垒机)
  • 原文地址:https://blog.csdn.net/limaning/article/details/126860529
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号