#charts #google-visualization
#Диаграммы #google-визуализация
Вопрос:
У меня есть два типа аннотаций, у одного есть ссылки, а у другого нет. Я хочу раскрасить их в разные цвета. Возможно ли это?
тип 1 — это —
{
v: 'sample',
Link: 'some link
}
тип 2 — это —
{
v: 'sample',
}
Я хочу покрасить type1 в один цвет, а type2 в другой, возможно ли это?
Ответ №1:
вы можете оформить аннотации для общей диаграммы
или для каждой серии в отдельности
смотрите Следующий рабочий фрагмент,
fontSize
10
для всех аннотаций установлено
значение, затем цвета изменяются для отдельных рядов
google.charts.load('current', {
callback: drawStacked,
packages: ['corechart']
});
function drawStacked() {
var data = new google.visualization.arrayToDataTable([
['Month', 'A', {role: 'annotation'}, 'B', {role: 'annotation'}],
['Aug', 3754, '3,754', 2089, '2,089'],
['Sept', 900, '900', 200, '200'],
['Oct', 2000, '2,000', 4900, '4,900'],
['Nov', 1700, '1,700', 2200, '2,200'],
['Dec', 2400, '2,400', 2089, '2,089']
]);
var options = {
annotations: {
textStyle: {
fontSize: 10
}
},
series: {
0: {
annotations: {
stem: {
color: 'cyan',
length: 5
},
textStyle: {
color: 'cyan'
}
}
},
1: {
annotations: {
stem: {
color: 'magenta',
length: 10
},
textStyle: {
color: 'magenta'
}
}
}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
Редактировать
чтобы иметь разные цвета для аннотаций в одной серии,
необходимо изменить цвет вручную при срабатывании 'ready'
события
смотрите следующий рабочий фрагмент…
google.charts.load('current', {
callback: drawStacked,
packages: ['corechart']
});
function drawStacked() {
var data = new google.visualization.arrayToDataTable([
['Month', 'A', {role: 'annotation'}],
['Aug', 3754, '3,754'],
['Sept', {v: 900, p: {link: 'type A'}}, '900'],
['Oct', {v: 2000, p: {link: 'type B'}}, '2,000'],
['Nov', 1700, '1,700'],
['Dec', 2400, '2,400']
]);
var options = {
annotations: {
textStyle: {
color: '#000000',
fontSize: 10
}
}
};
var container = document.getElementById('chart_div');
var chart = new google.visualization.LineChart(container);
google.visualization.events.addListener(chart, 'ready', function () {
Array.prototype.forEach.call(container.getElementsByTagName('text'), function (text, index) {
for (var i = 0; i < data.getNumberOfRows(); i ) {
if ((text.getAttribute('text-anchor') === 'middle') amp;amp; (text.innerHTML === data.getFormattedValue(i, 1))) {
switch (data.getProperty(i, 1, 'link')) {
case 'type A':
text.setAttribute('fill', 'magenta');
break;
case 'type B':
text.setAttribute('fill', 'cyan');
break;
}
}
}
});
});
chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
Комментарии:
1. надеюсь, это поможет, см. Параметры конфигурации для всех настроек, которые можно настроить…
2. проблема здесь в том, что у меня нет никаких рядов, кроме одной столбчатой диаграммы