无法理解如何更改"react-native-svg-charts"的x轴和y轴标签。看不到标签
import React,{useState} from 'react';
import {View, StyleSheet, Text, Button, Dimensions, TouchableOpacity} from 'react-native';
// import {LineChart} from "react-native-chart-kit";
import { LineChart, XAxis, YAxis } from 'react-native-svg-charts';
let {height, width} = Dimensions.get("window");//(Below) make it as width as the screen
const GraphComponent_1 = (props) => {
const {pinnedMeasurements, Labelss} = props;
const data = [ 50, 10, 40, 95, -4, -24, 85, 91, 35, 53, -53, 24 ]
const xLabels = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]
const yLabels = [ 'Poor', 'Fair', 'Good', 'Very Good', 'Excellent' ]
return (
<View style={{ height: 200, padding: 20 }}>
<LineChart
style={{ flex: 1 }}
data={data}
svg={{ stroke: 'rgb(134, 65, 244)' }}
contentInset={{ top: 20, bottom: 20 }}
>
<XAxis
style={{ marginTop: 10 }}
data={data}
formatLabel={(value, index) => xLabels[index]}
style={{
axisLabel: {
color: 'red', // changes x axis text color to red
},
}}
/>
<YAxis
style={{ marginRight: 10 }}
data={data}
contentInset={{ top: 20, bottom: 20 }}
min={-60}
max={100}
numberOfTicks={yLabels.length}
formatLabel={(value, index) => yLabels[index]}
/>
</LineChart>
</View>
)
}
const styles = StyleSheet.create({
});
我做的最好的是这个(下面)与这个错误(下面):
2条答案
按热度按时间eiee3dmh1#
发生错误的原因是
index
超出范围。xLabels
的长度为12,而实际data
的长度为15。您可以为x轴添加额外的标签,也可以将数据减少到12。
Y轴也有同样的问题。我看到你想用一些标签将它们"分组"。你可以将
numberOfTicks
属性与yLabels.length
一起使用。然后在格式化标签时,你可以使用index
。我在
YAxis
的min
和max
中找到了一些东西。如果提供了它们,错误就消失了。对于布局:
ef1yzkbh2#
错误已解决