javascript - ChartJS - 在散点图上显示数据值
问题描述
我正在使用 ChatJS 的散点图,如下所示:
我正在尝试添加要在图表中显示的数据值(例如上面的行,中间点应该显示标签 ~0.05)
我试图关注这个线程,但我认为散点图的行为与折线图/条形图不同,因此它对我不起作用。
我的代码:
function createStatisticalResultsChart(kpiData) {
var kpiName = kpiData.kpi_name;
var kpiChartId = `${kpiName}-chart`;
if (kpiData.x_axes_dict.g2_values) {
var scatterChartDatasets = generateScatterChartDatasets(kpiData, num_test_groups);
new Chart(document.getElementById(kpiChartId), {
type: 'scatter',
data: {
datasets: scatterChartDatasets
},
options: {
legend: false,
tooltips: false,
scales: {
y: {
display: false,
suggestedMin: -2,
suggestedMax: 2,
},
x: {
suggestedMin: -1,
suggestedMax: 1,
ticks: {
// Include a dollar sign in the ticks
callback: function(value, index, values) {
return value + '%';
}
}
}
}
}
})
} else {
// If not xAxisList - it means the upper & lower bound returned NULL results from memdsql
var canvasObject = document.getElementById(kpiChartId);
var ctx = canvasObject.getContext("2d");
ctx.font = "12px Verdana";
ctx.fillText("Lower & Upper bounds data is N/A", 10, 90);
}
};
function generateScatterChartDatasets(kpiData, num_test_groups) {
var xAxisValuesG2 = kpiData.x_axes_dict.g2_values;
// Y value of 0 (straight line)
var finalXAxisG2Array = generateScatterChartData(xAxisValuesG2, 1);
var groupB_Dataset = {
label: 'Group-B',
data: finalXAxisG2Array,
borderColor: `${significance_colors_dict[kpiData.uplift_g2_significant_level]}`,
backgroundColor: 'white',
showLine: true,
pointStyle: 'cross',
pointRadius: 10,
};
var finalDatasets = [];
finalDatasets.push(groupB_Dataset);
if (num_test_groups > 2) {
var xAxisValuesG3 = kpiData.x_axes_dict.g3_values;
// Y value of 0 (straight line)
var finalXAxisG3Array = generateScatterChartData(xAxisValuesG3, 0);
var groupC_Dataset = {
label: 'Group-C',
data: finalXAxisG3Array,
borderColor: `${significance_colors_dict[kpiData.uplift_g3_significant_level]}`,
backgroundColor: 'white',
showLine: true,
borderDash: [10, 5],
pointStyle: 'cross',
pointRadius: 10,
};
finalDatasets.push(groupC_Dataset);
}
return finalDatasets;
}
function generateScatterChartData(xAxisValues, yValue) {
// finalArray will match the scatter-chart required data
// yValue should be always a INT CONSTANT (0/1/2)
var finalArray = [];
for (var i = 0; i < xAxisValues.length; i++) {
finalArray.push({
'x': xAxisValues[i] * 100,
'y': yValue
})
}
return finalArray;
}
// MAIN
createStatisticalResultsChart(kpiDataFromDatabase);
解决方案
推荐阅读
- typescript - 在无服务器框架中转译非导入的打字稿文件
- teradata - 将一些字符替换和掩码为 char
- python - Pycharm不读取python文件而没有错误
- flask - 使用 Flask 在 SQLAlchemy 中按布尔列排序
- android - 如何修复将 compileSdkVersion 从 28 更改为 29 的错误
- ruby-on-rails - Ruby 更新值内的现有哈希值
- typescript - 验证表单字段是否小于角度反应形式中的另一个
- github - 在 GitHub 拉取请求中禁用“隐藏对话”?
- python - How to fill column in dataframe with repeating value a certain number of times?
- php - 忽略特定文件 Xdebug Visual Studio Code