You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Recharts库无法实现目标图表的技术求助

求助:如何用Recharts实现指定的堆叠柱状图样式?

我最近一直在尝试用Recharts构建一个特定样式的图表,试了好几种方法都没达到预期效果,想请大家帮忙看看能不能实现!

目标样式说明

我的目标图表是每个类别下有两根堆叠的柱子:

  • 底部是橙色的基础柱状图,带有绿色的上下方向误差棒
  • 橙色柱子正上方叠着一根黑色的柱状图

尝试过程与问题

  • 我先后试过普通柱状图、堆叠柱状图、组合图表、误差棒组件等多种组合,但都没成功还原目标样式
  • 目前最接近预期的效果是:橙色柱子和黑色柱子各自独立排列(没有堆叠),误差棒显示正常
  • 但当我给两个<Bar>组件添加stackId="0"属性,想让黑色柱子叠在橙色柱子上方时,出现了异常:黑色柱子的高度变得异常高,完全偏离了预期位置

相关代码

最接近预期效果的代码(未添加stackId)

const customData = [ 
  { name: 'food', uv: 1000, pv: [1001,2000], amt: 4500, time: 1, uvError: [100, 50], pvError: [110, 20] }, 
  { name: 'cosmetic', uv: 2300, pv: [2301,3700], amt: 6500, time: 2, uvError: 120, pvError: 50 }, 
  { name: 'storage', uv: 2200, pv: [2201,3500], amt: 5000, time: 3, uvError: [120, 80], pvError: [200, 100] }, 
  { name: 'digital', uv: 1800, pv: [1801,3300], amt: 4000, time: 4, uvError: 100, pvError: 30 }, 
]; 

class POC extends React.Component { 
  render() { 
    return ( 
      <div className="bar-chart-wrapper"> 
        <ComposedChart width={400} height={400} data={customData}> 
          <XAxis /> 
          <YAxis /> 
          <Bar dataKey="uv" fill="#ff7300"> 
            <ErrorBar dataKey="pvError" width={5} strokeWidth={10} stroke="green" direction="y" /> 
          </Bar> 
          <Bar dataKey="pv"> 
          </Bar> 
        </ComposedChart> 
      </div> 
    ); 
  } 
} 

异常效果的代码修改

仅在上述代码的两个<Bar>组件中添加了stackId="0"属性,其余代码完全一致。

想请教各位,有没有办法用Recharts实现我想要的图表样式?麻烦大家给点思路或者解决方案,提前谢谢大家了!

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

火山引擎 最新活动