我在面积图中显示了一年的数字,我只想在 Xaxis 上显示月份名称。这就是我现在所拥有的:
<ResponsiveContainer height={350} width="100%">
<AreaChart
data={data}
margin={{
top: 0,
right: 0,
left: 0,
bottom: 0,
}}
height={320}
>
<defs>
<linearGradient id="colorGradient" x1="0" y1="0" x2="0" y2="1">
<stop
offset="5%"
stopColor={fullConfig.theme.colors.blue.DEFAULT}
stopOpacity={0.6}
/>
<stop
offset="55%"
stopColor={fullConfig.theme.colors.purple.DEFAULT}
stopOpacity={0.4}
/>
<stop offset="100%" stopColor="#FFFFFF" stopOpacity={0.8} />
</linearGradient>
</defs>
<XAxis
dataKey="date"
tickSize={16}
tickFormatter={yearFormatter}
interval={30}
height={50}
dx={20}
dy={20}
/>
<Tooltip content={<CustomTooltip currency={currency} />} />
<Area
type="monotone"
dataKey="price"
stroke={fullConfig.theme.colors.purple.DEFAULT}
fill="url(#colorGradient)"
/>
</AreaChart>
</ResponsiveContainer>
我的数据是这样的对象数组:
{ 'price': <number>, 'date': <Date> },
我已经尝试并尝试让刻度线(在添加的图像上突出显示)移动到月份名称所在的同一位置。由于同一月份有多个日期,因此在图表开始的地方开始刻度对我来说并不重要。我最初尝试不在 xAxis 上使用“间隔”,而是使用 tickCount 和 allowDuplicatedCategory 等方式,但那些总是显示重复的月份名称。我尝试使用自定义刻度组件,但它只是处理渲染标签,而不是移动实际的刻度线(在图像上突出显示)。移动刻度线对我来说很重要,因为我希望图形从一个窗口边缘到另一个窗口边缘。到目前为止我尝试过的事情:
- 向轴添加填充 - 为整个图形添加填充,因此图形左侧有空间
- 使用类别作为刻度
- 使用 allowDuplicatedCategory 和 type="category" 渲染 12 个月(渲染回调仅从 DateTime 返回月份名称)
- 使用 tickCount={12} 来限制刻度量 - 奇怪的是渲染 ca 24 刻度而不是 12,但第一个从边缘开始
- 摆弄域参数 - 没有结果
- 尝试使用样式对象和自定义反应元素来呈现刻度。
任何人都可以帮助我吗?