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

按name列分组DataFrame并生成Plotly等高线图

按name分组生成独立等高线图

直接通过groupby拆分数据,为每个分组单独执行等高线图生成逻辑即可,完整代码如下:

import pandas as pd
import numpy as np
import plotly.graph_objects as go
from scipy.interpolate import griddata

# 初始化原始数据
df = pd.DataFrame({'col1':[11,12,23,21,23,43,23,12,21,34],
                   'col2':[111,121,213,211,123,143,213,122,210,171],
                   'col3':[2111,2121,2213,2121,3123,4143,3213,2122,1210,989],
                   'name':['aa','bb','cc','cc','aa','aa','cc','bb','aa','bb']})

# 按name分组遍历生成图表
for group_name, group_data in df.groupby('name'):
    # 提取当前分组的坐标与数值
    x = np.array(group_data['col1'])
    y = np.array(group_data['col2'])
    z = np.array(group_data['col3'])
    
    # 构建插值网格
    xi = np.linspace(x.min(), x.max(), 100)
    yi = np.linspace(y.min(), y.max(), 100)
    grid_x, grid_y = np.meshgrid(xi, yi)
    
    # 执行线性插值生成等高线数据
    Z = griddata((x, y), z, (grid_x, grid_y), method='linear')
    
    # 创建并显示分组专属等高线图
    fig = go.Figure(go.Contour(x=xi, y=yi, z=Z, colorscale='Jet'))
    fig.update_layout(title=f"分组:{group_name} 的等高线图")
    fig.show()

关键说明

  • groupby('name')会将原始数据拆分为三个独立子数据集,分别对应aa、bb、cc
  • 每个分组的插值与绘图逻辑和原代码一致,但仅使用当前分组的数据,确保图表独立
  • 通过update_layout添加分组标题,方便快速区分不同图表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:32:20