antvis/G2

柱状图如何让标签显示在两个柱子之间 #6238

juanhuang99 posted onGitHub

问题描述

代码如下:

import { Chart } from '@antv/g2';

const data = [
  { name: 'London', 月份: 'Jan.', 月均降雨量: 18.9 },
  { name: 'London', 月份: 'Feb.', 月均降雨量: 28.8 },
  { name: 'London', 月份: 'Mar.', 月均降雨量: 39.3 },
  { name: 'London', 月份: 'Apr.', 月均降雨量: 81.4 },
  { name: 'London', 月份: 'May', 月均降雨量: 47 },
  { name: 'London', 月份: 'Jun.', 月均降雨量: 20.3 },
  { name: 'London', 月份: 'Jul.', 月均降雨量: 24 },
  { name: 'London', 月份: 'Aug.', 月均降雨量: 35.6 },
  { name: 'Berlin', 月份: 'Jan.', 月均降雨量: 12.4 },
  { name: 'Berlin', 月份: 'Feb.', 月均降雨量: 23.2 },
  { name: 'Berlin', 月份: 'Mar.', 月均降雨量: 34.5 },
  { name: 'Berlin', 月份: 'Apr.', 月均降雨量: 99.7 },
  { name: 'Berlin', 月份: 'May', 月均降雨量: 52.6 },
  { name: 'Berlin', 月份: 'Jun.', 月均降雨量: 35.5 },
  { name: 'Berlin', 月份: 'Jul.', 月均降雨量: 37.4 },
  { name: 'Berlin', 月份: 'Aug.', 月均降雨量: 42.4 },
];

const chart = new Chart({
  container: 'container',
  autoFit: true,
});

chart
  .interval()
  .data(data)
  .encode('x', '月份')
  .encode('y', '月均降雨量')
  .encode('color', 'name')
  .transform({ type: 'stackY' })
  .axis({
      x: {
          tick: false,
      },
      y: {
          tick: false,
          label: false,
          title: false,
      },
  })
  .scale('x', {
      padding: 0,
  })
  .interaction('elementHighlight', { background: true });

chart.render();

YUFts5AhEf

怎样能让标签显示在两个柱子之间,红色文本的位置

重现链接

No response

重现步骤

No response

预期行为

No response

平台

  • 操作系统: [macOS, Windows, Linux, React Native ...]
  • 网页浏览器: [Google Chrome, Safari, Firefox]

屏幕截图或视频(可选)

No response

补充说明(可选)

No response


可以设置 axis 的 label 的偏移:

chart.interval().axis({
  x: {
    labelDx: -30,
  },
});

但是这个便宜量需要自己手动计算:-(chartWidth / bar.length) / 2

posted by pearmini 11 months ago

Fund this Issue

$0.00
Funded

Pull requests