Python Plotly如何根据Z值绘制灰-红色阶编码的多色折线图
基于Z列给XY折线做颜色编码的实现方法
px.line 原生不支持单条折线按第三列数值做连续色映射,直接调用plotly.graph_objects.Scatter绑定颜色字段即可实现灰-红渐变效果,可直接运行的代码如下:
import plotly.graph_objects as go import pandas as pd # 此处df为包含X、Y、Z三列的目标DataFrame fig = go.Figure() fig.add_trace( go.Scatter( x=df["X"], y=df["Y"], mode="lines", line=dict( # 绑定Z列为颜色映射字段 color=df["Z"], # 自定义灰-红配色:Z低值对应中灰,Z高值对应正红 colorscale=[[0, "rgb(127,127,127)"], [1, "rgb(220,20,20)"]], width=3, # 显示侧边色阶条,标注Z值对应关系 showscale=True, colorbar=dict(title="Z值") ) ) ) # 按需调整布局后导出图片 fig.write_image("color_coded_line.png")
可调参数说明
- 配色调整:想改灰色、红色的深浅直接改
colorscale里对应的RGB色值就行,需要多段渐变也可以在列表里插入更多色值节点 - 映射范围固定:如果不想颜色跟着数据集的Z极值自动缩放,在
line配置里加cmin=你要绑定的最小Z值, cmax=你要绑定的最大Z值即可 - 渐变平滑度:如果看到颜色有明显断层,把X/Y/Z的采样点加密就行,相邻点间距越小,颜色过渡越顺滑
内容的提问来源于stack exchange,提问作者InsDSt
相关产品推荐
相关产品推荐

