我无法在我的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>
答案 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>
</>