pyecharts柱状图内容格式化

本文介绍如何使用PyEcharts创建柱状图时,实现数据标签根据指定字段而非数字显示的方法。通过使用JsCode设置formatter,展示了如何将数据项的'sj'属性转换为实际文本。节省时间的解决方案,适用于数据可视化需求的个性化定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中遇到一个需求:如下图所示,我不想要让柱状图显示成数字,想要按照我自己想要的方式显示
在这里插入图片描述真的废了很长时间才找到答案,喜欢的点个赞吧!
完整代码:

from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from pyecharts import options as opts


list1 = [1000, 2000, 3000, 4000, 5000, 6000, 7222]


list3 = [
    {"value": list1[0], "sj": 'aaaa'},
    {"value": list1[1], "sj": 'bbb'},
    {"value": list1[2], "sj":'ccc' },
    {"value": list1[3], "sj": 'ddd'},
    {"value": list1[4], "sj": 'eee'},
    {"value": list1[5], "sj": 'fff'},
    {"value": list1[6], "sj": 'ggg'},
]

res = Faker.values()
c = (
    Bar({"theme": ThemeType.MACARONS})
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", list3)
        .set_series_opts(label_opts=opts.LabelOpts(
        formatter=JsCode(
            "function(x){return x.data.sj;}"
        ),
    ))  # y轴的数字是否显示
        .set_global_opts(
        title_opts={"text": "Bar-通过 dict 进行配置"}
    )
        .render("bar_base_dict_config.html")
)


核心代码为:  formatter=JsCode(
            "function(x){return x.data.sj;}"
        ),

### 使用 Pyecharts 实现地图与柱状图组合 为了实现地图和柱状图的组合可视化效果,可以通过 `Grid` 布局来安排不同类型的图表。具体来说,在同一页面内分别创建地图实例以及柱状图实例,并通过 Grid 将两者关联起来。 #### 地图部分 对于地图组件而言,需要准备好地理位置及其对应的数值数据列表,格式应为 `[位置名称, 数值]` 形式的元组集合[^1]。这里假设有一个名为 `data_pairs` 的变量存储着这样的配对数据: ```python from pyecharts.charts import Map from pyecharts import options as opts # 示例数据 [(省份名, 数据量)] data_pairs = [("广东", 98), ("北京", 77), ("上海", 66)] map_chart = ( Map() .add( series_name="地区分布", data_pair=data_pairs, maptype="china" ) .set_global_opts( visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="中国各省市数据分布") ) ) ``` #### 柱状图部分 接着定义一个柱状图用于表示具体的分类对比情况。此例子中会构建两个系列的数据——跨国企业和本土企业的占比情况作为演示[^4]: ```python from pyecharts.charts import Bar bar_x = ["广东", "北京", "上海"] bar2_y1 = [30, 40, 50] # 跨国企业假定比例% bar2_y2 = [70, 60, 50] # 本土企业假定比例% bar_chart = ( Bar() .add_xaxis(bar_x) .add_yaxis("跨国企业占比(%)", bar2_y1, stack="stack1", category_gap="50%") .add_yaxis("本土企业占比(%)", bar2_y2, stack="stack1", category_gap="50%") .set_global_opts( legend_opts=opts.LegendOpts(is_show=False), title_opts=opts.TitleOpts( title='全国药店中药饮片供应商占比', pos_top="50%", pos_left="center" ), yaxis_opts=opts.AxisOpts(name="百分比"), xaxis_opts=opts.AxisOpts(name="省市区") ) ) ``` #### 合并展示 最后一步就是利用 `Grid` 来布局上述的地图和柱状图对象,使得它们可以在同一个画布上呈现出来: ```python from pyecharts.components import Table from pyecharts.globals import CurrentConfig CurrentConfig.ONLINE_HOST = "https://cdn.jsdelivr.net/npm/echarts@latest/dist/" from pyecharts.commons.utils import JsCode from pyecharts.charts import Grid grid = ( Grid(init_opts=opts.InitOpts(width="1200px", height="600px")) .add(map_chart, grid_opts=opts.GridOpts(pos_bottom="60%")) # 设置地图位于上方 .add(bar_chart, grid_opts=opts.GridOpts(pos_top="60%")) # 设置柱状图位于下方 ) grid.render_notebook() # 或者保存到HTML文件:grid.render('combined_map_bar.html') ``` 这样就可以得到一张既包含了地理信息又展示了类别间关系的复合型可视化图表了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值