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

如何在Victory Chart中实现等产量曲线渐变背景?

在Victory Chart中实现等产量曲线渐变背景

我之前在Stack Overflow询问过如何为Victory Chart添加线性渐变背景,现在希望实现等产量曲线渐变背景(效果参考下图)。我知道该效果和CSS径向渐变相关,但始终没理清等产量曲线的实现逻辑。

补充说明:我已经拿到了能满足需求的SVG代码,但无法将其整合到Victory Chart中,相关代码如下:

<svg
        style={{
          height: 0,
          width: 0,
        }}
        >
        <defs>
          <linearGradient
            viewBox="0 0 100 100"
            backgroundColor="#06b050"
            id="iso_gradient"
          >
            <path fill="#ffff00" d="M 10,0 C 15,85 15,85 100,90 L 100,0" />
            <path fill="#fdc100" d="M 30,0 C 30,40 60,70 100,70 L 100,0" />
            <path fill="#ff0000" d="M 50,0 C 55,15 85,45 100,50 L 100,0" />
            <path fill="#bf0101" d="M 70,0 C 75,7 93,25 100,30 L 100,0" />
          </linearGradient>
        </defs>
      </svg>
      <VictoryChart
        domain={{ y: domain }}
        theme={VictoryTheme.material}
        tickFormat={(tick) => `${tick}`}
        width={width}
        height={height}
        style={{
          background: {
            fill: "url(#iso_gradient)",
          },
        }}
        backgroundComponent={<Background />}
      >
        <VictoryAxis tickValues={tickxValues} tickFormat={tickxFormat} />
        <VictoryAxis
          dependentAxis
          tickValues={tickyValues}
          tickFormat={tickyFormat}
        />
        <VictoryScatter data={data} x={xaxis} y={yaxis} />
      </VictoryChart>

参考示例图:
等产量曲线渐变示例图

我尝试过用CSS径向渐变相关的SVG代码,但还是没搞懂等产量曲线的实现逻辑,代码如下:

<svg>
        <defs>
          <radialGradient
            id="iso_gradient"
            // gradientTransform="rotate(10)"
          >
            <stop offset="0%" stopColor={colorScale[4]} />
            <stop offset="25%" stopColor={colorScale[4]} />
            <stop offset="25%" stopColor={colorScale[3]} />
            <stop offset="50%" stopColor={colorScale[3]} />
            <stop offset="50%" stopColor={colorScale[3]} />
            <stop offset="50%" stopColor={colorScale[2]} />
            <stop offset="75%" stopColor={colorScale[2]} />
            <stop offset="75%" stopColor={colorScale[1]} />
            <stop offset="90%" stopColor={colorScale[1]} />
            <stop offset="90%" stopColor={colorScale[0]} />
            <stop offset="100%" stopColor={colorScale[0]} />
          </radialGradient>
        </defs>
      </svg>

尝试效果参考图:
径向渐变尝试效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:00:58