代码之家  ›  专栏  ›  技术社区  ›  Falieson

如何在react vis中反转/下降/排序x轴数据

  •  1
  • Falieson  · 技术社区  · 7 年前

    最近的 数据位于左侧。我原本希望只要反转数据属性数组就能做到这一点,但react-vis库比这更聪明。

    我本以为信息在 this documentation page .

    是吗

    代码示例

    function ExampleGraph(props) {
      const {
        data,
        x, y,
      } = props
    
      // const keys = Object.keys(data)
      // if(keys.length>2){
      //   console.error({data}, "has too many dimensions for x-y")
      // }
      const keys=[x,y]
    
      const xyData = (()=> {
        const xKey = keys[0]
        const yKey = keys[1]
    
        const xArgs = data.map(r => (r[xKey]))
        const yArgs = data.map(r => (r[yKey]))
    
        const coords = xArgs.map((x, i) => ({
          x: x,
          y: yArgs[i] 
        }))
    
        return coords
      })()
    
      return (
        <XYPlot
        width={1000}
        height={640}>
          <HorizontalGridLines />
          <LineSeries
            data={xyData}
          />
          <XAxis />
          <YAxis />
        </XYPlot>
      )
    }
    

    <template name="stepCountsGraph">
      <div>
        {{> React
          component=ExampleGraph
          data=stepCounts
          y="step_count"
          x="time"
        }}
      </div>
    </template>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   mcnutt    7 年前

    function ExampleGraph() {
    const xKey = this.props.x;
    const yKey = this.props.y;
    const xyData = data.map(r => ({x: r[xKey], y: r[yKey]}));
    const xDomain = data.reduce((res, row) => {
        return {max: Math.max(res.max, row[xKey]), min: Math.min(res.min, row[xKey])};
    }, {min: Infinity, max: -Infinity});
    
    return (
    <XYPlot
        xDomain={[xDomain.max, xDomain.min]}
        width={1000}
        height={640}>
          <HorizontalGridLines />
          <LineSeries data={xyData} />
          <XAxis />
          <YAxis />
        </XYPlot>
       )
    }
    

    我希望这能回答你的问题!我提出了一个问题,将这种澄清添加到文档中 here .

    推荐文章