d3.js 当数据具有+ve和-ve值时,如何填充`recharts` `AreaChart`曲线下的区域

von4xj4u  于 2023-05-07  发布在  Echarts
关注(0)|答案(1)|浏览(109)

我用javascript recharts library做了一个图表。如何填充曲线下的区域,直到可见区域的底部,而不是零?
现在看起来像这样:

但我希望曲线填充到图表的底部,而不是下降到/上升到零。
此部分的代码如下:

return (
    <ResponsiveContainer width="100%" height="100%">
      <AreaChart
        data={data}
        margin={{
          top: 5,
          right: 30,
          left: 20,
          bottom: 5,
        }}
      >
        <defs>
          <linearGradient id="fillGradient" x1="0" y1="-1" x2="0" y2="1">
            <stop offset="5%" stopColor="#3182ce" stopOpacity={1} />
            <stop offset="95%" stopColor="#FFFFFF" stopOpacity={1} />
          </linearGradient>
        </defs>
        <CartesianGrid strokeDasharray="3 0" opacity={0.2} />
        <XAxis dataKey="date" tickFormatter={parseTimeLabels} />
        <YAxis />
        <Tooltip />
        <Legend />
        <Area
          type="natural"
          dataKey="height"
          stroke="#8884d8"
          fillOpacity={1}
          fill="url(#fillGradient)"
          activeDot={{ scale: 10, onClick: (e, point) => onLineClick(point) }}
        />
      </AreaChart>
    </ResponsiveContainer>
  );
qij5mzcb

qij5mzcb1#

如果有人偶然发现了这一点,那么面积图通常会覆盖从0到dataKey(在本例中为height)处给定值之间的值
如果你想给一个特定的区域上色,你可以让你的dataKey prop引用一个数组值[yMin,height]。
在recharts库中的PR中提到:https://github.com/recharts/recharts/issues/316

相关问题