pyecharts根据echarts配置项生成图表(通过将JavaScript对象转换为Python字典)

问题

ECharts通过ECharts实例的setOptions方法添加option(配置和数据)来生成图表,ECharts官方示例往往也只提供opiton部分内容,用户只用关心配置项的编写即可绘制图表。可不可以根据ECharts的配置项,直接在pyecharts中生成图表呢?

解决方法

pyecharts中的Base类是所有图表类的基类,通过Base类的options属性即可传入ECharts风格的配置项。

但是需要注意的是:**options属性对应的数据结构是Python字典,ECharts的配置项为JavaScript对象。**

因此必须将JavaScript对象转换为Python字典。大致有两种思路。

  1. 在JavaScript语言环境中,将配置项转换为JSON格式,然后通过Python内置的json库的json.loads方法将JSON反序列化为Python字典。
  2. 直接将JavaScript对象转换为Python字典。Python内置库满足不了这种需求,通过第三方库demjsonpysjon5可实现需求。

案例一:通过JSON格式传入配置

from pyecharts.charts.base import Base

options =  {
        'title': {
            'text': 'ECharts 入门示例'
        },
        'tooltip': {},
        'legend': {
            'data': ['销量']
        },
        'xAxis': {
            'data': ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
        },
        'yAxis': {},
        'series': [{
            'name': '销量',
            'type': 'bar',
            'data': [5, 20, 36, 10, 10, 20]
        }]
    }

chart = Base()
chart.options = options
chart.render()

案例二:将JavaScript对象转换为Python字典

注意去掉配置项最后的;,否则转换失败。

from pyecharts.charts.base import Base

op=''' 
{
            title: {
                text: 'ECharts 入门示例'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        }
'''

import demjson
options = demjson.decode(op)
# import pyjson5
# options = pyjson5.loads(op)
chart = Base()
chart.options = options
chart.render()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值