【问题标题】:How to draw a pie with logarithmic scale in HighCharts?如何在 HighCharts 中绘制对数比例的饼图?
【发布时间】:2016-10-21 09:18:32
【问题描述】:

我需要在 Highcharts 中画一个馅饼(或一个甜甜圈,或半个甜甜圈,我认为这是相同的过程)。 问题是数据存在严重偏差,即一个切片的大小 = 3,第二个切片的大小 = 1000。

最终的结果是一个带有巨大切片和几乎看不见的切片的馅饼。

有没有办法以对数方式打印切片的大小(对于轴图)?

【问题讨论】:

  • 我没有看到这个用例。馅饼和甜甜圈可用于显示一组数据点之间的相对百分比。如果一个数据点比另一个数据点大 2 个数量级——嗯,就是这样,你应该看到它。如果你有一个“日志”弧,你会在一个数据点相对于另一个数据点的相对重要性上欺骗最终用户,因为它打破了通常如何查看饼图的范式。
  • @wergeld 我明白你的意思,你是对的,但我需要打印所有系列,即使它们有不同的数量级
  • 有兴趣看看会是什么样子...
  • 不太好,我知道。最后的甜甜圈不会代表真正的“数据”,但最终,这就是我需要的:)
  • 如果您需要显示数字,但您以一种实际上并不代表数字的方式将它们可视化,那么您所做的一切都是无意义的装饰数字,最坏的情况是您已经完全误导你的听众。最好只显示一个简单的数字列表或表格,其中没有无意义的图形来扭曲数据并混淆数据的消费者。 FWIW

标签: javascript charts highcharts pie-chart logarithm


【解决方案1】:

饼图不使用轴,因此将其类型设置为对数将不起作用。您可以做的是转换您的数据并保留“真实”值,以便它可以显示在工具提示、数据标签等中。

    var data = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512],
        logData = data.map(function (value) {
        return {
            y: Math.log(value) / Math.LN10, 
            realY: value // store a pure value
          };
      });


    // later in chart options
    tooltip: {
     pointFormat: 'x = {point.x}, y = {point.realY}' // access the pure value in a tooltip
    }

将饼图与转换后的数据和“纯”数据进行比较:http://jsfiddle.net/rz9899j8/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多