2

我的 Y 轴键(或刻度)很长,并且它们被截断但这不是由于图形本身缺乏足够的宽度,使用检查工具,我可以看到为它分配了足够的空间,但是分配给整个图形的框架是不够的......那应该是 ResponsiveBar......

图片

更改 X 轴的“转换”值会使文本完整显示(几乎),但随后图例被截断:

图片

我怎样才能让它们完整显示?在文档中找不到我的答案。

这是一个重现问题的沙箱:https ://codesandbox.io/s/missing-legends-text-pns6v

重要提示:“宽度”不是问题,它以某种方式被一条白线覆盖......另外,我尝试了许多“宽度”尺寸

我指的问题是这样的: 图片

很想听听是否有办法包装文本,或者通过添加悬停效果来截断以显示全文

4

1 回答 1

6

解决方案1:增加保证金

您可以在中设置left属性。在以下示例中设置为 240px:marginResponsiveBar

<ResponsiveBar
  ........
  margin={{ top: 50, right: 150, bottom: 50, left: 240 }}
  ........
/>

您还需要更新容器样式以扩展图表,将边距设置为 0,例如:

style={{
    .....
    margin: "0"
}}

结果: 在此处输入图像描述

沙盒

解决方案2:工具提示

如果不想增加边距,可以重写props 和format中的函数:axisLeft

  • 像这样剪断绳子New York, Manhatta...
  • 添加<title>标签以显示工具提示:
axisLeft={{
    format: (v) => {
        return v.length > 10 ? (
            <tspan>
            {v.substring(0, 10) + "..."}
            <title>{v}</title>
            </tspan>
        ) : (
            v
        );
    },
    tickSize: 5,
    tickPadding: 5,
    tickRotation: 0,
    legend: "",
    legendPosition: "middle",
    legendOffset: -40
}}

签出这篇文章

沙盒

在此处输入图像描述

于 2021-03-04T04:46:30.977 回答