pentaho cde条形图中的趋势线?

时间:2014-07-24 20:41:00

标签: pentaho pentaho-cde pentaho-ctools

每个条形表示我的案例中的应用程序。我使用趋势线在条形图上查看不同应用程序的性能。

在条形图的趋势线上,如果其中一个实体(条形图)没有数据,我们是否可以不显示该趋势。 目前在X轴上获得具有零值的条形的趋势线。

我可以在图表上看到趋势,但还有一个传说是“移动平均线”。这可以删除吗? 如果您需要更多信息,请在评论部分告诉我们。

可以通过JavaScript实现吗?怎么样?例如:使用图表的提取。

1 个答案:

答案 0 :(得分:1)

趋势计算本身不会考虑空值。 但是,如果您不希望显示“application”为null的趋势点,则可以使用扩展点隐藏通过这些点的线段:

trendLine_strokeStyle: function(s) {
    var categ  = s.getCategory(),
        series = s.getSeries(),
        dataPart = '0',
        hasNonNull = 
            this.chart.visibleData(dataPart)
               .datums({category: categ, series: series}, {isNull: false})
               .any();

    // `delegate` returns the color that would be returned hadn't we overridden
    //  the extension point.
    // `null` means "transparent color".
    return hasNonNull ? this.delegate() : null;
}

之前的代码段适用于默认图表配置,您使用默认维度名称(系列类别),趋势仅针对数据主图(具有 dataPart '0'的数据)。

关于另一个问题,关于如何隐藏显示趋势颜色的图例部分,假设您再次没有更改默认值,并且趋势图使用第二个颜色轴,那么您将通过指定选项color2AxisLegendVisible: false隐藏它。

编辑:要将上面的代码放在CDF组件的preExecution处理程序中,你可以这样做:

function() {
    var cccOptions = this.chartDefinition;

    // Extension points are in a array of pairs name, value format...
    var eps = Dashboards.propertiesArrayToObject(cccOptions.extensionPoints);

    // Specify the extension point
    eps.trendLine_strokeStyle = function() { ... };

    // Convert extension points to original CDF format
    cccOptions.extensionPoints = Dashboards.objectToPropertiesArray(eps);
}