You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hvplot多列筛选配置:时间序列图展示多城市并支持按产品筛选

hvplot多维度筛选时间序列图实现方法

你当前的代码用groupby='city'是把城市设为了筛选维度,因此单张图只能展示单个城市的数据,要实现同屏展示所有城市、产品作为筛选维度的效果,只需要两步:

  • 把宽表结构的产品列转换为长表行维度
    hvplot的groupby筛选器仅针对行维度生效,你目前Prod1-Prod4是横向排列的列,需要先用pandas的melt做结构转换:

    import pandas as pd
    import hvplot.pandas
    
    # 宽表转长表,保留日期、城市作为固定维度,产品字段转成行标签
    df_long = df.melt(
        id_vars=["date", "city"],
        var_name="product",
        value_name="metric_value"
    )
    

    转换后的数据表结构如下:

    datecityproductmetric_value
    01/07/2012LimogesProd124
    02/07/2012LyonProd139
    03/07/2012ParisProd157
    ............
  • 调整绘图参数,把城市设为分线维度、产品设为筛选维度
    用by参数指定按城市拆分折线(同屏展示所有城市数据),用groupby参数指定按产品生成筛选下拉框:

    df_long.hvplot(
        kind="line",
        x="date",
        y="metric_value",
        by="city",
        groupby="product",
        width=850,
        height=450,
        legend="top_right"
    )
    

最终效果说明

  • 单张图默认展示首个产品维度下,3个城市的完整时间序列折线,不同城市自动分配不同颜色
  • 图表侧边会自动生成产品筛选下拉框,切换选项即可查看对应产品下各城市的数据走势
  • 如果后续新增产品列,不需要修改绘图代码,melt会自动把非date/city的列纳入产品筛选维度

内容的提问来源于stack exchange,提问作者Camue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 04:12:24