m0_60877809 2022-11-15 17:07 采纳率: 72.7%
浏览 9

关于antv g2 的图例问题

关于antv g2 图例 这个使用图例跟环形 结合 但是图例的宽度无法设置 只能设置 整体的Chart的宽度 加padding的话只能控制 环图的大小 使用偏移量 也不行 也只是改变位置 图例的宽度设置不了

img


<script>
import { Chart, registerShape } from '@antv/g2'

export default {
  // 宽 高  图例显示  标题 标题数字 单位
  props: ['width', 'height', 'legendShow', 'title', 'titleNum', 'titleCompany'],
  data () {
    return {}
  },
  mounted () {
    console.log('---------------yuan ayuna ')
    this.init()
  },
  methods: {
    init () {
      const data = [
        { type: '具有控制力的', value: 501.9 },
        { type: 'Czech Republic', value: 301.9 },
        { type: 'Ireland', value: 201.1 },
        { type: 'Germany', value: 165.8 },
        { type: 'Australia', value: 139.9 },
        { type: '具有控制力33.33%~50%', value: 128.3 },
        { type: 'UK', value: 99 },
        { type: 'Belgium', value: 60 },
        { type: 'The Netherlands', value: 50 }
      ]

      // 可以通过调整这个数值控制分割空白处的间距,0-1 之间的数值
      const sliceNumber = 0.003

      // 自定义 other 的图形,增加两条线
      registerShape('interval', 'slice-shape', {
        draw (cfg, container) {
          const points = cfg.points
          let path = []
          path.push(['M', points[0].x, points[0].y])
          path.push(['L', points[1].x, points[1].y - sliceNumber])
          path.push(['L', points[2].x, points[2].y - sliceNumber])
          path.push(['L', points[3].x, points[3].y])
          path.push('Z')
          path = this.parsePath(path)
          return container.addShape('path', {
            attrs: {
              fill: cfg.color,
              path
            }
          })
        }
      })

      const chart = new Chart({
        container: 'container',
        // autoFit: true,
        height: this.height,
        width: this.width,
        padding: [20,20,20,-200],
      })

      // chart.forceFit()
      chart.data(data)
      chart.coordinate('theta', {
        radius: 1,
        innerRadius: 0.8
      })
      chart.tooltip({
        showTitle: false,
        showMarkers: false
      })

      // 辅助文本
      const html = `<div style="color:#a3a3a3;font-size: 14px;text-align: center;width: 10em;">${this.title}<br><span style="color:#2b2a29;font-size:20px">${this.titleNum}</span><span style="color:#2b2a29;">${this.titleCompany}</span></div>`
      const titleHtml = `<div style="color:#333333;font-size: 20px;text-align: center;width: 10em;">${this.titleNum}<span style="font-size:14px;color:#2b2a29;">${this.titleCompany}</span></div>`
      chart.annotation().html({
        position: ['50%', '50%'],
        html: this.title ? html : titleHtml,
        alignX: 'middle',
        alignY: 'middle'
      })

      chart.legend({
        position: 'right',
        offsetX: -100,
        offsetY: 0,
        // itemHeight:10,
        // itemWidth:200,
        itemName: {
          formatter (text, item, index) {
            // console.log('item',item);
            const val =  (data[index].value / 100).toFixed(1)+'%'
            return `${text}     |   ${val}`
          },
          style: {
            // fill: 'red',
          }
        }
      })

      chart.interval().adjust('stack').position('value').color('type').shape('slice-shape')

      chart.theme({
        styleSheet: {
          brandColor: '#F87B7B',
          paletteQualitative10: ['#F87B7B', '#FFA573', '#FFD069', '#C8E081', '#8DE0F3', '#9AC3FF', '#CFB1FE']
        }
      })
      chart.render()
    }
  }
}
</script>

<style lang="less" scoped>

</style>


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-15 21:58
    关注
    评论

报告相同问题?

问题事件

  • 修改了问题 11月15日
  • 创建了问题 11月15日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价