已使用react-native-chart-kit
包为React Native应用创建了基本折线/面积图,如下面的代码所示。
问题:我们如何独立更改地块组成部分的样式/颜色?例如点,线描,区域,轴,刻度标签等...
更改color
中的chartConfig
参数后,它似乎会影响几乎整个图表,包括轴刻度标签,网格线,线下面积。
是否可以为图表的每个属性定义颜色?
代码:
import { LineChart } from 'react-native-chart-kit';
import { Dimensions} from 'react-native';
const screenWidth = Dimensions.get('window').width
const data = {
labels: ['January', 'February', 'March', 'April', 'May', 'June'],
datasets: [{
data: [ 20, 45, 28, 80, 99, 43 ],
color: (opacity = 1) => `rgba(134, 65, 244, ${opacity})`,
strokeWidth: 2 // optional
}]
}
const chartConfig = {
backgroundGradientFrom: '#fff',
backgroundGradientTo: '#fff',
color: (opacity = 1) => `rgba(63, 143, 244, ${opacity})`,
strokeWidth: 2 // optional, default 3
}
class Test extends Component {
render() {
return (
<LineChart
data={data}
width={screenWidth}
height={400}
chartConfig={chartConfig}
/>
)
}
}
答案 0 :(得分:2)
这是我用来创建图表的代码。请参阅“ propsForDots”部分以设置数据点的样式。
我知道这只是您要求自定义帮助的一部分,但这只是一个开始。
<LineChart
data={{
labels: labelArray,
datasets: [
{
data: valueArray
}
]
}}
width={Dimensions.get("window").width} // from react-native
height={220}
yAxisInterval={1} // optional, defaults to 1
chartConfig={{
backgroundColor: "#444",
backgroundGradientFrom: '#444',
backgroundGradientTo: '#444',
decimalPlaces: 2, // optional, defaults to 2dp
color: (opacity = 1) => `rgba(0, 110, 199, ${opacity})`,
labelColor: (opacity = 1) => `rgba(255, 255, 255, ${opacity})`,
style: {
borderRadius: 16
},
propsForDots: {
r: "6",
strokeWidth: "2",
stroke: "#fff"
}
}}
bezier
style={{
marginVertical: 8,
borderRadius: 16
}}
/>
在点道具中,r是点的半径,笔划宽度是边框的大小,笔划是边框的颜色。
我也仍在尝试使用该库,因此才遇到这个问题。希望这可以帮助您和其他可能正在寻找某些相同事物的人。
答案 1 :(得分:0)
对于点颜色,我们可以使用 getDotColor 道具,这样我们可以编辑每个点并为每个点定义颜色
getDotColor 定义点颜色函数,用于计算折线图中点的颜色并取(dataPoint, dataPointIndex)
getDotColor={(dataPoint, dataPointIndex) => {
console.log('dataPoint ---->', dataPoint);
console.log('dataPointIndex --->', dataPointIndex);
//based on condition we return the color as string
if (dataPointIndex === 0) return 'red';
}}