【问题标题】:Highcharts : Tooltip pointFormat decimal to percentHighcharts:工具提示点格式小数到百分比
【发布时间】:2014-07-09 18:02:41
【问题描述】:

我必须使用pointFormat 属性来格式化工具提示。问题在于我无法找到使用{point.y}(0.0324123)并将其格式化为百分比(3.24)的方法。

正如我上面所说,我必须在tooltip.pointFormat 中执行此操作。我当前的代码是这样的

$highcharts[$key]['tooltip'] = [
    'pointFormat' => '<p style="margin:0;"><span style="color:{series.color};">{series.name}</span>: <b>{point.y:,.2f}%</b></p>'
];

有没有办法在 html/HighCharts 语法中执行{point.y:,.2f} * 100

感谢任何帮助。

【问题讨论】:

  • 为什么不用formatter 而不是pointFormat?我知道你说过你“必须”使用pointFormat,但我只是想确保我们覆盖了所有的基础......
  • 这是因为我在 PHP 中创建选项数组并将其传递给 javascript。你不能这样传递函数。
  • 我通常通过两个 javascript 对象来解决这个问题(从 PHP 传递的东西)。其中一个是在 javascript 中硬编码的,并且包含任何不会改变的东西......这是格式化程序函数,图表的大部分设置等。我有另一个包含变化值的 javascript 对象(例如,数据,标签等)需要由PHP生成。然后我在渲染图表之前将这两个对象合并在一起。请参阅此处了解如何执行此操作。 stackoverflow.com/questions/171251/…
  • pointFormat 只能设置简单的模式,不接受任何计算。为此,您确实需要使用formatter

标签: javascript highcharts


【解决方案1】:

这里是 DEMO 您将不得不像这样使用tooltip.formatter 选项(将返回值截断到小数点后两位):

tooltip: {
                //valueSuffix: '°C',
                enabled: true,
                formatter:function(){
                  return '<span style="color:'+this.series.color+'">'+this.series.name+'</span>: <b>'+Highcharts.numberFormat((this.y*100),2,'.')+'%</b>';
                }
            },

【讨论】:

  • 亲爱的朋友,您必须了解tooltip.pointFormat 不提供对tooltip.formatter 选项提供的值进行数学计算的灵活性。毕竟你想要的是在工具提示中显示格式化的值,对吧?
  • 我已更新我的答案,以截断至小数点后两位的百分比返回值
【解决方案2】:

进一步研究后,无法使用“pointFormat”和多个(转换为百分比)。

解决方案:不要使用 0.035,使用 3.50。如果这样做,Highcharts 将正确格式化轴。

编辑: Rahul Gupta 在下面发布了一种使用 Formatter 执行此操作的方法,如果您想要这样做的话。

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 2014-03-04
    • 2012-03-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多