streamlit自定义图表大小 (用components渲染pyecharts等)

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

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

先看效果:

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

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

import streamlit_echarts

from pyecharts.charts import Line
from pyecharts import options as opts

columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
line = Line().add_xaxis(columns)

line.width = '1000px'
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]
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]
line.add_yaxis(series_name="降水量", y_axis=data1, label_opts=opts.LabelOpts(is_show=True))
line.add_yaxis(series_name="蒸发量", y_axis=data2, label_opts=opts.LabelOpts(is_show=True))

streamlit_echarts.st_pyecharts(
            line
        )

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

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

import streamlit_echarts
from pyecharts.charts import Line
from pyecharts import options as opts
import streamlit.components.v1 as components        #将要展示的 弄成html

line2 = Line().add_xaxis(columns)
line2.height = '550px'  # 设置高度
line2.width = '900px'
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]
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]
line2.add_yaxis(series_name="降水量", y_axis=data1, label_opts=opts.LabelOpts(is_show=True))
line2.add_yaxis(series_name="蒸发量", y_axis=data2, label_opts=opts.LabelOpts(is_show=True))
line2Html = line2.render_embed()            #将折线组件转换成html文本
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

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在社区版PyCharm中使用Flask渲染Pyecharts图表,你可以遵循以下步骤: 1. 首先,确保你已经在PyCharm中创建了一个Flask项目,并安装了所需的依赖(包括Flask和Pyecharts)。 2. 创建一个Flask路由,用于处理请求和渲染图表。例如,可以在`app.py`文件中添加以下代码: ```python from flask import Flask, render_template from pyecharts import options as opts from pyecharts.charts import Bar app = Flask(__name__) @app.route('/') def index(): # 创建一个简单的柱状图 bar = Bar() bar.add_xaxis(["A", "B", "C", "D", "E"]) bar.add_yaxis("Series", [1, 3, 2, 5, 4]) # 渲染图表并返回HTML return render_template('index.html', chart=bar.render_embed()) if __name__ == '__main__': app.run() ``` 3. 在项目目录中创建一个名为`templates`的文件夹,在该文件夹中创建一个名为`index.html`的HTML模板文件。在模板文件中,你可以使用`chart`变量来插入Pyecharts图表渲染结果。例如: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Flask Pyecharts</title> {{ chart }} </head> <body> <h1>Flask Pyecharts Example</h1> </body> </html> ``` 4. 运行Flask应用程序,并在浏览器中访问`http://localhost:5000`,你应该能够看到渲染Pyecharts图表和页面标题。 这样,你就可以在Flask中使用Pyecharts渲染图表了。根据你的需求,你可以自定义图表的样式和数据,以及在HTML模板中添加其他内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limaning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值