Victory-native的VictoryBar标签显示不正确

时间:2019-07-07 16:03:56

标签: react-native victory-charts

我无法在我的React Native应用程序中使VictoryBar图表正确显示标签。 x轴表示天,y轴表示值。我希望图表显示  每个小节上方的值,但显示日期。我已经设置了标签属性,但是它什么也没做。如图所示,当我console.log(d)时,什么也没有发生。这段代码的结果如下。

“ react-native”:“ 0.59.9” “胜利本机”:“ ^ 32.0.2” “ react-native-svg”:“ ^ 9.5.1”,

谢谢

<VictoryChart domainPadding={70}>
  <VictoryBar 
     data={bars} 
     x="label"  
     y="value"
     // animate={{ onLoad: { duration: 1000 } }}
     style={{ data: { width: 20, fill: (d) => d.x === 3 ? "#000000" : "#49C6B7" }}}
     labels={(d)=>{console.log(d);return d.y}}
  />
  <VictoryAxis
    //x
    tickLabelComponent={<VictoryLabel angle={45} />}
    style={{
      axis: {stroke: 'grey'},
      ticks: {stroke: 'white'},
      tickLabels: {fontSize: 12, padding: 3, marginLeft:10, stroke:"white", verticalAnchor: "middle", textAnchor:'start'}
    }}
  />
  <VictoryAxis
  //y
    tickFormat={(d)=> numeral(d).format('0.0a')}
    dependentAxis
    style={{
    axis: {stroke: "grey"},
    grid: {stroke:'grey'},
    tickLabels: {fontSize: 0, padding: 0,   stroke:'white'}
    }}
  />
</VictoryChart> 

enter image description here

1 个答案:

答案 0 :(得分:3)

labels={({ datum }) => `${datum.y}`}
import { VictoryBar,VictoryChart,VictoryAxis,VictoryTheme } from "victory-native";
<>
      <VictoryChart
  domainPadding={{ x: 20 }}
>
  <VictoryBar
    data={[
      { x: "Year 1", y: 150 },
      { x: "Year 2", y: 250 },
      { x: "Year 3", y: 100 },
      { x: "Year 4", y: 750 },
      { x: "Year 5", y: 100 }
    ]}
    style={{
      data: { fill: "black", width: 12 }
    }}
    animate={{
      onExit: {
        duration: 500,
        before: () => ({
          _y: 0,
          fill: "orange",
          label: "BYE"
        })
      }
    }}
  />
  </VictoryChart>
<VictoryChart
    responsive={false}
    animate={{
      duration: 500,
      onLoad: { duration: 200 }
    }}
    domainPadding={{ x: 0 }}
    theme={VictoryTheme.material}
  >
    <VictoryAxis />
    <VictoryBar
      barRatio={1}
      cornerRadius={0} 
      style={{ data: { fill: "#6DB65B" } }}
      alignment="middle"
      labels={({ datum }) => `${datum.y}`} // <-- important
      data={[
        { x: "Year 1", y: 150 },
        { x: "Year 2", y: 250 },
        { x: "Year 3", y: 100 },
        { x: "Year 4", y: 750 },
        { x: "Year 5", y: 100 }
      ]}
    />
  </VictoryChart>
  </>

enter image description here