使用类别代替极坐标导出 Highcharts 极坐标图 csv

软织

我已经实现了一个极坐标图,其中每个系列有 4 个值对应 4 个类别。当我导出图表 csv 时,该category列包含极坐标。我想用相应的类别名称替换它们。我该怎么做呢?

将类别添加到每个系列中,没有任何效果。我还尝试向 xAxis 添加类别属性,但没有效果。xAxis.label 格式化程序成功返回每个数据极坐标的类别名称。

const options = {
  chart: {
    polar: true,
  },
  title: {
    text: '',
  },
  tooltip: {
    valueDecimals: 2,
    headerFormat: '<br/>',
  },
  legend: {},
  pane: {
    startAngle: 0,
    endAngle: 360,
  },
  xAxis: {
    tickInterval: 45,
    min: 0,
    max: 360,
    labels: {
      // eslint-disable-next-line
      formatter: function() {
        switch (this.value) {
          case 45:
            return '<b>Experience</b>'
          case 135:
            return '<b>Frictionless</b>'
          case 225:
            return '<b>Low Price</b>'
          case 315:
            return '<b>Brand</b>'
          default:
            return ''
        }
      },
    },
  },
  yAxis: {
    min: 0,
    max: 10,
    labels: {
      format: '{}',
    },
  },
  plotOptions: {
    series: {
      pointStart: 45,
      pointInterval: 90,
    },
    column: {
      pointPadding: 0,
      groupPadding: 0,
    },
  },
  series: kahnSeries,
}
软织

为了避免更改图表的当前显示,我封装了 getCSV 函数并替换了 CSV 类别值。如果有更简单的方法,请分享。

{
  (function (H) {
    H.wrap(H.Chart.prototype, 'getCSV', function (
      proceed,
      useLocalDecimalPoint
    ) {
      // Run the original proceed method
      const result = proceed.apply(
        this,
        Array.prototype.slice.call(arguments, 1)
      )
      const itemDelimiter = ','
      const lineDelimiter = '\n'
      const rows = result.split(lineDelimiter)
      let newResult = ''
      let rowCategories = false
      rows.forEach((row, rowIndex) => {
          const columns = row.split(itemDelimiter)
          if (rowIndex === 0 && columns[0] === '"Category"') {
            rowCategories = true
          }
          if (rowIndex > 0 && rowCategories) {
            let newRow = formatter(columns[0])
            columns.forEach((column, columnIndex) => {
              if (columnIndex > 0) {
                newRow += itemDelimiter
                newRow += column
              }
            })
            newResult += newRow
          } else {
            newResult += row
          }
          if (rowIndex < rows.length - 1) {
            newResult += lineDelimiter
          }
        }
      )
      return newResult
    })
  }(Highcharts))
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Highcharts极坐标图-中心零

来自分类Dev

从HighCharts极坐标图中删除填充

来自分类Dev

如何清除Highcharts极坐标图中的柱形之间的空白?

来自分类Dev

HighCharts:极坐标图未在其框架中拉伸

来自分类Dev

(Highcharts)极坐标图中的多边形壳

来自分类Dev

极值极坐标图

来自分类Dev

极坐标图错误

来自分类Dev

极坐标图软件

来自分类Dev

极坐标图生成

来自分类Dev

极坐标图软件

来自分类Dev

极坐标图标签

来自分类Dev

gnuplot中的极坐标图

来自分类Dev

Gnuplot极坐标图直方图

来自分类Dev

如何绘制极坐标图?

来自分类Dev

更改极坐标图的轴

来自分类Dev

如何删除Highcharts极坐标图中的条形图之间的空白?

来自分类Dev

Highcharts 极坐标图是否可以用曲线连接点?

来自分类Dev

在Python中使用Facetgrid的极坐标图

来自分类Dev

Highcharts,无内轴的极坐标

来自分类Dev

为极坐标图的中心设置负值

来自分类Dev

删除极坐标图中的矩形边框

来自分类Dev

Gnuplot:极坐标图,显示可变范围

来自分类Dev

在JavaPlot中创建极坐标图

来自分类Dev

以极坐标图显示值(matlab)

来自分类Dev

matplotlib极坐标图设置标签位置

来自分类Dev

极坐标图旁边的垂直轴

来自分类Dev

使用scilab绘制极坐标图时出错

来自分类Dev

使用色图设置极坐标图的背景色

来自分类Dev

如何在极坐标图中使用颜色条?