当前位置: 首页 > 知识库问答 >
问题:

前端 - VChart图表的轴标签如何做截断,换行等效果?

柯星辰
2023-08-30

类似 (https://www.visactor.io/vchart/demo/bar-chart/basic-bar)这样的条形图,
图片
当轴标签非常长的时候,怎么实现换行?截断相关效果

共有2个答案

费子濯
2023-08-30

解决方案 Solution

不同图表库的解决方案不一样,根据你给的demo,在VChart中只需要配置axes 中对应轴的label相关配置:

  • 通过formatMethod返回数组,可以实现自定义换行
  • 通过style.maxLineWidth可以实现自动截断
  • 通过style.ellipsis可以设置省略符
    image.png

代码示例

Code Example

const spec = {  type: 'bar',  data: [    {      id: 'barData',      values: [        {          name: 'Apple https://www.apple.com/',          value: 214480        },        {          name: 'Google https://www.google.com.hk/',          value: 155506        },        {          name: 'Amazon https://www.amazon.com/',          value: 100764        },        {          name: 'Microsoft https://www.microsoft.com/',          value: 92715        }      ]    }  ],  direction: 'horizontal',  xField: 'value',  yField: 'name',  axes: [    {      orient: 'bottom',      visible: false    },    {      orient: 'left',      label: {        formatMethod: (text, datum) => {          return text.split(' ');        },        style: {          maxLineWidth: 100,          ellipsis: '~'        }      }    }  ],  label: {    visible: true  }};

结果展示

在线效果参考:https://codesandbox.io/s/axis-label-auto-limit-pnsvzl

image.png

相关文档

坐标轴demo:https://www.visactor.io/vchart/demo/axis/animation

坐标轴教程:https://www.visactor.io/vchart/guide/tutorial_docs/Chart_Conc...

相关配置:https://www.visactor.io/vchart/option/barChart#axes-band.labe...

github:https://github.com/VisActor/VChart

缪兴腾
2023-08-30

看了下文档,能试的只有这个属性了。
image.png

另外,如果这个库不支持自定义坐标轴内容,可以考虑:
1.禁用坐标轴,自己写一个定位上去
2.换支持自定义的图表库

 类似资料:
  • 如何在Vue 中实现 (https://www.visactor.io/vchart/demo/bar-chart/basic-column)这样的柱状图, 有什么需要注意的点吗?

  • 我有一个捕捉NFC标签的应用程序。我过去遇到的问题是,用户以不稳定的方式悬停在标签上,导致NFC适配器触发两次。 我已经做了一些事情来应对这个问题。 显示: 这将NFC捕获活动设置为堆栈中的唯一实例,并且没有历史记录。我已经覆盖了所有可以停止并重新启动此活动的配置更改,后者可能会导致意向数据重新交付到该活动,使其看起来像是重复扫描。 在活动本身,我已经重写了onNewIntent,除了显示一个糟糕

  • 问题内容: 我正在使用D3生成条形图。我在 _x_轴上使用的标签每个都是几个字长,由于这会使所有标签重叠,因此我需要将这些标签跨行打断。(如果我可以用换行符替换每个标签中的所有空格,那将是很好的。) 我最初是通过用文字换行符()替换空格并在标签的元素上进行设置来尝试此操作的。不幸的是,事实证明SVG不尊重此属性。接下来,我尝试将每个单词都包装成以后可以样式化的格式。我通过此功能传递了每个标签: 但

  • 图表里的tooltip默认效果在文字很长的时候不会换行,如何配置自动换行呢?

  • 问题内容: 我有一个SQL Server Reporting Services(2008)图表(错误图表)。X轴的日期间隔为1/1 / 2009、2 / 1/2009等。Y轴的数字间隔为50。Y轴上的值为0、50和100。但是,不是显示0。 ,50和100我想分别显示“小”,“中”和“大”。有谁知道如何执行此文本替换? 问题答案: 这有点hack,但是这里有: 首先,将值标准化为零左右,因此最小值

  • 我正在尝试使用vue-chartjs和Chart.js(2.7.1)绘制线图。显示图形,但没有xAx和yAx标签。 这是我的选项对象: 我认为scales.xAxes.scaleLabel不起作用。