在我的例子中,每个条表示一个应用程序。我正在使用趋势线在条形图上查看不同应用程序的性能。
在条形图的趋势线上,如果其中一个实体(条形)没有数据,我们是否可以不显示该趋势。当前在 X 轴上获得值为零的柱的趋势线。
我可以在图表上看到趋势,但还有一个传说是“移动平均线”。这个可以去掉吗?如果您需要更多信息,请在评论部分告诉我。
是否可以通过 JavaScript 做到这一点?如何?例如:使用图表的后期获取。
在我的例子中,每个条表示一个应用程序。我正在使用趋势线在条形图上查看不同应用程序的性能。
在条形图的趋势线上,如果其中一个实体(条形)没有数据,我们是否可以不显示该趋势。当前在 X 轴上获得值为零的柱的趋势线。
我可以在图表上看到趋势,但还有一个传说是“移动平均线”。这个可以去掉吗?如果您需要更多信息,请在评论部分告诉我。
是否可以通过 JavaScript 做到这一点?如何?例如:使用图表的后期获取。
趋势计算本身不考虑空值。但是,如果您不想显示“应用程序”为空的趋势点,您可以使用扩展点隐藏通过这些点的线段:
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);
}