我正在使用这个 React Native
包来制作一个StackedAreaChart
. 它正在工作,但我无法使用标签添加 XAxis date
。
这是我的代码
const hardCodedData = [
{
month: new Date(2015, 0, 1),
BackLeft: 3840,
BackRight: 1920,
FrontLeft: 960,
FrontRight: 400,
},
{
month: new Date(2015, 1, 1),
BackLeft: 1600,
BackRight: 1440,
FrontLeft: 960,
FrontRight: 400,
},
{
month: new Date(2015, 2, 1),
BackLeft: 640,
BackRight: 960,
FrontLeft: 3640,
FrontRight: 400,
},
{
month: new Date(2015, 3, 1),
BackLeft: 3320,
BackRight: 480,
FrontLeft: 640,
FrontRight: 400,
},
]
const colors = ['#E8B2EE', '#47D1D9', '#8072FF', '#FE8C87']
const keys = ['BackLeft', 'BackRight', 'FrontLeft', 'FrontRight']
const svgs = [
{ onPress: () => alert('Back Left') },
{ onPress: () => alert('Back Right') },
{ onPress: () => alert('Front Left') },
{ onPress: () => alert('Front Right') },
]
const Gradient = () =>
map(hardCodedData, (d, i) => {
//console.log("color: " + d.month)
let key = 'gradient' + d.month;
let color = colors[i];
console.log("color: " + color)
return (
<Defs key={key}>
<LinearGradient id={key} x1={'0'} y={'0%'} x2={'0'} y2={'100%'}>
<Stop offset={'0%'} stopColor={ color } />
<Stop
offset={'100%'}
stopColor={'rgba(165, 125, 255, 0)'}
/>
</LinearGradient>
</Defs>
);
});
let gradients = map(hardCodedData, d => {
let fill = `url(#gradient${d.month})`;
return fill;
})
<StackedAreaChart
style={{ height: 334, paddingVertical: 16 }}
data={hardCodedData}
keys={keys}
colors={gradients}
curve={shape.curveNatural}
showGrid={false}
svgs={svgs}
>
<Grid />
<Line />
<Gradient />
</StackedAreaChart>
你能帮我解决这个问题吗?
编辑 在@Wiliam Brochensque Junior 的帮助下,我能够渲染 XAxis
<XAxis
style={{ backgroundColor: 'transparent' }}
data={hardCodedData}
formatLabel={(value, index) => hardCodedData[index].month.getDay().toString() + "-" + hardCodedData[index].month.getMonth().toString() + "-" + hardCodedData[index].month.getYear().toString()}
contentInset={{ left: 18, right: 18 }}
svg={{ fontSize: 20, fill: '#3A8F98' }}
/>