【问题标题】:jqplot how to ger rid of null valuesjqplot如何摆脱空值
【发布时间】:2016-08-31 02:49:13
【问题描述】:

我正在使用基于 jqPlot 的 primefaces 6.0 折线图组件。在我的图表中,我有 null 值,这是我需要的,因为我正在使用 breakOnNull 绘图选项,所以曲线在零点上有中断,但不幸的是,零“点”是显示为字符串(见截图)。

到目前为止,我已尝试通过设置hideZeros: true 选项来解决此问题 - 没有成功。我还尝试了一个简单的自定义pointLabels 渲染器:

this.cfg.seriesDefaults.pointLabels =
{
    show: true, 
    location: 's',
    formatString: '%.1f',
    formatter: function(format, val){ 
         console.log(val);
         return (val== null?"":val);}
}

但这也不起作用,因为 null 的值并未全部传递给它,我无法理解。

我们将不胜感激。

【问题讨论】:

  • 这在普通 jqPlot 中有效吗?
  • 如果你的意思是上面的代码 sn-p,它在一个扩展函数内部,因为我不使用普通的 jqPlot,所以我不知道这段代码是否可以 1:1 工作。
  • PrimeFaces 在这方面做的不多,除了为图表、数据生成基本的 javascript 并添加“扩展器”脚本。一个简单的 jqplot 示例应该不难创建(确保您首先尝试与 PF 用户相同的版本),然后您可以确定问题是纯粹与 jqplot 相关还是 PF 搞砸了。在后一种情况下,我非常愿意开始调查,但如果它是纯粹的 jqPlot 事情,则不会。因此问题。

标签: primefaces jqplot


【解决方案1】:

您可以使用 jQuery 的 each 函数迭代 pointLabels divs,当检测到 null 字符串时,将其更改为 null

这是该方法的示例,在创建图表后,(document).ready 事件的此添加函数将删除 x 轴标签的文本。使用类似的方法,您可以从相应的 div 中删除所需的值:

  $('.jqplot-xaxis-tick').each(function(i,elem) {
        $(this).text(null);
    });

这是一个jsfiddle,其中包含通过所述方法删除的 x 轴标签的示例。

【讨论】:

    【解决方案2】:

    尝试通过将return (val== null?"":val);} 更改为return (val== 'null'?"":val);} 来检查空值是否是偶然的“空”字符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-02
      • 2016-07-24
      • 1970-01-01
      • 2011-08-21
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多