如何设置 X 轴和标签之间的边距(在我的情况下为 'dd.mm.yy' ?
那是我的面积图:
<AreaChart
width={600}
height={400}
data={data}
connectNulls={true}
margin={{top: 20, left: 120, bottom: 20}}>
<defs>
<linearGradient id="colorUv" x1="0" y1="0" x2="0" y2="1">
<stop offset="5%" stopColor="#2198F3" stopOpacity={1}/>
<stop offset="95%" stopColor="#4BABF4" stopOpacity={0.6}/>
</linearGradient>
</defs>
<Area
dot={{ stroke: '#2196f3', strokeWidth: 4, r: 7, fill: 'white'}}
type='monotone'
dataKey='value'
stroke='#2196f3'
strokeWidth='4'
fill='url(#colorUv)'
/>
<XAxis dataKey="name" />
<YAxis orientation="right" />
<CartesianGrid strokeDasharray="3 3"/>
<Tooltip/>
</AreaChart>
Run Code Online (Sandbox Code Playgroud)
ps recharts-tag 不可用!
小智 7
尝试在 XAxid 和 YAxis 上使用 dx 和 dy 属性,如下所示:
<XAxis dataKey="name" dy={10}/>
Run Code Online (Sandbox Code Playgroud)
或者
<YAxis orientation="right" dx={5}/>
Run Code Online (Sandbox Code Playgroud)
根据这些值,当渲染 SVG 并计算刻度的位置时,您为 dx 设置的数量将添加到刻度项的 X 位置的正常数量上。因此,在 YAxis 的情况下,这将为表示刻度的文本元素的x值添加 10值。dy也一样
1)创建自定义XAxisTick
const CustomizedXAxisTick = React.createClass({
render () {
const {x, y, payload} = this.props;
return (
<g transform={`translate(${x},${y})`}>
<text x={-10} y={30}
textAnchor="start"
fill="#666">{payload.value}</text>
</g>
);
}
});
Run Code Online (Sandbox Code Playgroud)
2) 设置 XAxis 刻度:
<XAxis
dataKey="name"
tick={<CustomizedXAxisTick/>}
/>
Run Code Online (Sandbox Code Playgroud)