如何使用Python版Plotly绘制平滑软折线(曲线)图
Plotly 柔和平滑折线图复现方案
完全可以通过Plotly Express或graph_objects实现soft柔边平滑折线效果,不需要引入第三方绘图库。
核心配置逻辑
Plotly默认折线是硬折角的线性连接,要做柔和过渡只需要调整两个轨迹参数:
- 将
line_shape设置为spline,开启样条插值连接 - 调整
line_smoothing参数,取值在0.3~0.6区间即可得到自然不生硬的柔和效果:数值越接近0越贴近原始硬折线,越接近1曲线弧度越大,超过0.8容易出现偏离原始数据点的过度弯曲。
这两个参数是Scatter轨迹的私有配置,不属于折线图全局通用设置,所以在通用示例和文档入门部分很难找到对应参考。
Plotly Express 实现代码
import plotly.express as px import pandas as pd # 替换为你自己的数据集 df = pd.DataFrame({ "x": [1, 2, 3, 4, 5, 6, 7], "y": [12, 19, 15, 25, 22, 30, 28] }) fig = px.line(df, x="x", y="y") # 配置平滑效果 fig.update_traces( line_shape="spline", line_smoothing=0.4 # 微调这个值匹配你要的柔和度 ) fig.show()
Graph Objects 实现代码
import plotly.graph_objects as go # 替换为你自己的x、y数据 x = [1, 2, 3, 4, 5, 6, 7] y = [12, 19, 15, 25, 22, 30, 28] fig = go.Figure() fig.add_trace(go.Scatter( x=x, y=y, mode="lines", line_shape="spline", line_smoothing=0.4, # 微调柔和度 line=dict(width=2) # 按需调整线宽、颜色 )) fig.show()
调参提示:如果你的数据点密度比较高,可以把
line_smoothing适当调低到0.3左右;数据点稀疏可以调到0.5~0.6,最终视觉效果和参考的soft平滑线条基本无差异。
内容的提问来源于stack exchange,提问作者Leonardo Ferreira
相关产品推荐
相关产品推荐

