Recharts 自定义 XAxis 名称

Posted

技术标签:

【中文标题】Recharts 自定义 XAxis 名称【英文标题】:Recharts Customized XAxis name 【发布时间】:2022-01-08 16:17:53 【问题描述】:

这些天我刚刚开始学习 React 和 React Native for Web。我尝试使用 Recharts Library 制作 LineChart。我希望所有 XAxis 名称都应该显示在图表中; 10 月,11 月 ... 24 月。

这是我的 LineData。 name 是 XAsis 标签名称,UV 是它的值。

let lineData = [
     name: "10시", uv: 44 ,
     name: "11시", uv: 32 ,
     name: "12시", uv: 14 ,
     name: "13시", uv: 14 ,
     name: "14시", uv: 14 ,
     name: "15시", uv: 34 ,
     name: "16시", uv: 4 ,
     name: "17시", uv: 54 ,
     name: "18시", uv: 14 ,
     name: "19시", uv: 0 ,
     name: "20시", uv: 34 ,
     name: "21시", uv: 54 ,
     name: "22시", uv: 14 ,
     name: "23시", uv: 24 ,
     name: "24시", uv: 34 ,
  ];

在折线图中,我使用 ResponsiveContainer、XAsis 和 YAxis 来自定义图表。

这是我的代码

<ResponsiveContainer  height=250>
              <LineChart
                data=lineData
                margin= top: 20, right: 0, left: -15, bottom: 5 
              >
                <Line type="monotone" dataKey="uv" stroke="red" />
                <XAxis
                  dataKey="name"
                  tick= fontSize: 10 
                  // 
                  // ticks=[
                  //   10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
                  // ]
                  // domain=[10, 24]
                />
                <YAxis tick= fontSize: 10  ticks=[0, 10, 20, 30, 40] />
              </LineChart>
            </ResponsiveContainer>

我上面提到的,XAsis 名称应该全部显示在图表中,但部分名称仅显示为这样。

10 月、12 月、14 月、16 月、18 月、20 月、22 月、23 月消失。 你能帮我解决我遗漏或错误的部分吗? 非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

我认为因为您将 ResponsiveContainer 的宽度设置为 100%,并且您在窄屏幕中呈现此图,Recharts 会自动剪切一些 x 轴值。

您是否尝试过为 XAxis 添加间隔道具? 如果在 XAxis 组件中设置interval=0,即使屏幕不够宽,你也可以在屏幕上看到所有的 x 轴值。

<XAxis
  dataKey="name"
  tick= fontSize: 10 
  interval=0
/>

【讨论】:

索引完全正常!非常感谢!

以上是关于Recharts 自定义 XAxis 名称的主要内容,如果未能解决你的问题,请参考以下文章

Plotly:如何使用 plotly express 自定义 xaxis 刻度标签?

Plotly:如何设置自定义 xticks

Recharts 响应式容器在 flexbox 中无法正确调整大小

echart使用自定义单个柱状颜色实现

如何在highcharts中调整自定义按钮的宽度和高度

使用 jira 中的 REST api 修改自定义字段名称后,CustomFieldManager 未获取自定义字段