gpt4 book ai didi

javascript - 想要在 Google Chart 的条形图中的注释文本上添加顶部填充(可视化)

转载 作者:行者123 更新时间:2023-11-30 20:11:56 30 4
gpt4 key购买 nike

我使用的是 Google Chart 的条形图。顶部的每个栏都有注释,在栏内,我想在栏顶线和注释文本之间创建更多空间(超过默认空间)。我还没有找到任何方法来围绕注释文本创建顶部填充(或顶部边距)。

这是我的代码:

var data = google.visualization.arrayToDataTable([
[USER_AVERAGE, 'User Average', { role: 'style' }],
['SANDRA COOMBS', 8.6, '#008FBE'],
['STEVE ADAMS', 4.3, '#008FBE'],
]);

var view = new google.visualization.DataView(data);
view.setColumns([0, 1, 2,
{
calc: "stringify",
sourceColumn: 1,
type: "string",
role: "annotation"
}]);
var options = {
legend: {
position: 'none'
},
chartArea: { width: width, height: height, right: right },
isStacked: true,
orientation: orientation.orientation,
fontSize: '12',
fontName: 'OpenSans-Regular',
hAxis: {
viewWindowMode: 'maximized',
},
vAxis: {
viewWindowMode: 'maximized',
},
animation: {
startup: true,
duration: 1500,
easing: 'out',
},
};
var chart = new google.visualization.ColumnChart(document.getElementById("averageDaysChart"));
chart.draw(view.toDataTable(), options);

最佳答案

注释填充、位置等没有配置选项...

但是,您可以在图表的'animationfinish' 事件中手动移动它们
但是,必须使用 MutationObserver
因为图表会将它们移回交互性,
例如当您将鼠标悬停在列上时。

有关移动注释的示例,请参阅以下工作片段...

google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = google.visualization.arrayToDataTable([
['USER_AVERAGE', 'User Average', { role: 'style' }],
['SANDRA COOMBS', 8.6, '#008FBE'],
['STEVE ADAMS', 4.3, '#008FBE'],
]);

var view = new google.visualization.DataView(data);
view.setColumns([0, 1, 2,
{
calc: "stringify",
sourceColumn: 1,
type: "string",
role: "annotation"
}]);
var options = {
legend: {
position: 'none'
},
//chartArea: { width: width, height: height, right: right },
isStacked: true,
//orientation: orientation.orientation,
fontSize: '12',
fontName: 'OpenSans-Regular',
hAxis: {
viewWindowMode: 'maximized',
},
vAxis: {
viewWindowMode: 'maximized',
},
animation: {
startup: true,
duration: 1500,
easing: 'out',
},
};

var container = document.getElementById("averageDaysChart");
var chart = new google.visualization.ColumnChart(container);

google.visualization.events.addListener(chart, 'animationfinish', function () {
moveAnnotations();
var observer = new MutationObserver(moveAnnotations);
observer.observe(container, {
childList: true,
subtree: true
});
});

var originalY = {};
function moveAnnotations() {
var labels = container.getElementsByTagName('text');
Array.prototype.forEach.call(labels, function(label) {
if ((!isNaN(parseFloat(label.textContent))) && (label.getAttribute('text-anchor') === 'middle')) {
if (!originalY.hasOwnProperty(label.textContent)) {
originalY[label.textContent] = parseFloat(label.getAttribute('y'));
}
label.setAttribute('y', originalY[label.textContent] + 20);
}
});
}

chart.draw(view.toDataTable(), options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="averageDaysChart"></div>

关于javascript - 想要在 Google Chart 的条形图中的注释文本上添加顶部填充(可视化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52314857/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com