41

无法弄清楚如何使用http://recharts.org/设置 Y 轴的范围

希望 Y 轴在其范围内显示 100 而不是当前的 60。

图表

在这种特定情况下不需要相信代码示例或填充目的

4

5 回答 5

93

YAxis组件上,将域值设置为 0 到 100(或任何你想要的)

 <YAxis type="number" domain={[0, 20000]}/>

检查这个小提琴链接

默认值:[0, 'auto']

当轴为数字轴时,指定轴的域。域的长度应该是 2,我们将验证域中的值。数组中的每个元素都可以是数字、'auto'、'dataMin'、'dataMax'、类似'dataMin - 20'、'dataMax + 100'的字符串,或者接受单个参数并返回数字的函数. 如果域的任何元素设置为“自动”,将计算可理解的刻度刻度,并由刻度生成轴的最终域。

格式:

<YAxis type="number" domain={['dataMin', 'dataMax']} />
<YAxis type="number" domain={[0, 'dataMax']} />
<YAxis type="number" domain={['auto', 'auto']} />
<YAxis type="number" domain={[0, 'dataMax + 1000']} />
<YAxis type="number" domain={['dataMin - 100', 'dataMax + 100']} />
<YAxis type="number" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />
于 2018-04-28T18:07:00.107 回答
10

如果图表的值超出自定义域范围,则域边界集将被忽略。我遇到了这个问题,因为我使用自定义形状,其中负值像正值一样堆叠在顶部(但颜色不同)。指定domain={[0, 'dataMax + 1000']}不起作用,因为 y 轴仍然显示负数 - 直到我设置allowDataOverflow={true}

<YAxis domain={[0, 'dataMax + 1000']} allowDataOverflow={true} />
于 2020-09-01T06:03:33.263 回答
3

还有一件事

"type" 可以是 2 种类型 'number', 'category'

域将仅适用于数字类型的轴。

如果没有应用域,请检查您的轴类型

于 2019-11-07T10:23:59.857 回答
1

假设您正在绘制多线图并在计算时使用自定义 YAxis。

因此,您可以从数据中定义自定义 dataKey

   <YAxis type="number" 
           dataKey={(v)=>parseInt(v.someValue)}
           domain={[0, 'dataMax+100']} />
于 2020-05-27T22:42:39.060 回答
1

如果问题仍然存在,可能是因为轴值是字符串类型。

手动将您的值类型转换为可能会得到解决的数字。

于 2021-09-27T08:58:03.290 回答