Обновлять:
Мне удалось показать процент, а также легенду. Но пока не умеет менять цвета.
chart: {
type: 'pie',
styledMode: true
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
theme: {
colors: [
'green',
'red',
'fushcia'
]
},
plotOptions: {
pie: {
colors: [
'green',
'red',
'fushcia'
],
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
title: {
text: 'Rundeck Jobs Stats'
},
series: [
{
data: chartData(table)
}
Исходное сообщение:
У меня есть круговая диаграмма, созданная из таблицы HTML с помощью DataTables. Я смотрю на один столбец, СТАТУС, который показывает либо успешное, либо неудачное, либо прерванное выполнение. Диаграмма подсчитывает количество вхождений каждого из них и рисует круговую диаграмму.
Я бы хотел, чтобы круговая диаграмма была зеленой для успехов, красной для неудач и фиолетовой для прерванных проектов.
Я также хотел бы, чтобы кусочки показывали соответствующие проценты от пирога.
у меня есть код для создания диаграммы, он взят непосредственно из примера https://datatables.net/examples/api/highcharts.html
// Create DataTable
const table = new DataTable('#example');
// Create chart
const chart = Highcharts.chart('demo-output', {
chart: {
type: 'pie',
styledMode: true
},
title: {
text: 'Rundeck Jobs Stats'
},
series: [
{
data: chartData(table)
}
]
});
// On each draw, update the data in the chart
table.on('draw', function () {
chart.series[0].setData(chartData(table));
});
function chartData(table) {
var counts = {};
// Count the number of entries for each position
table
.column(3, { search: 'applied' })
.data()
.each(function (val) {
if (counts[val]) {
counts[val] += 1;
}
else {
counts[val] = 1;
}
});
return Object.entries(counts).map((e) => ({
name: e[0],
y: e[1]
}));
}
Я просмотрел несколько постов и попытался добавить красок в серию, но пока безрезультатно.
заранее спасибо
р






Это потому, что вы используете styledMode:
styledMode: логический
Применять ли стильный режим. В стилизованном режиме презентация отсутствует. атрибуты или CSS применяются к диаграмме SVG. Вместо этого правила CSS требуется для стилизации диаграммы. Таблица стилей по умолчанию доступна по адресу https://code.highcharts.com/css/highcharts.css.
Вы можете отключить его, как показано ниже, или оформить диаграмму с помощью CSS.
chart: {
...,
styledMode: false
}
Живой пример: https://jsfiddle.net/BlackLabel/hm5nb2o4/
Ссылка на API: https://api.highcharts.com/highcharts/chart.styledMode
Документы: https://www.highcharts.com/docs/chart-design-and-style/style-by-css
Только что заметил, что вы не загружаете CSS highcharts. Я удалил это, и теперь моя круговая диаграмма имеет цвета. Большое спасибо за это. Я все еще вижу, что цвета не привязаны к данным. Попытка получить зеленый цвет всегда увенчалась успехом, красный — неудачей и т. д.
Привет @ Роджер МакКаррик, в этом случае вам нужно установить цвет непосредственно в точках данных. Живой пример: jsfiddle.net/BlackLabel/sk7awrbg API: api.highcharts.com/highcharts/series.pie.data.color
Еще раз спасибо за ответ. Я рассмотрел приведенный вами пример, но он создает новый срез для каждой строки в таблице вместо того, чтобы группировать их по категориям «Успешно», «Не удалось» и «Прервано».
Итак, вы хотите иметь три фрагмента, как здесь: jsfiddle.net/BlackLabel/8jLuot3r
Спасибо за ответ и ссылки. Я скопировал и вставил ваш код для создания диаграммы на свою страницу. Я вижу, что в легенде используются эти цвета, но на графике по какой-то причине нет, хотя в вашем примере я вижу, что на графике используются эти цвета. Он использует пастели по умолчанию. Вы изменили CSS или что-то в этом роде? . Также замечает, что любое значение, находящееся в первой строке, получает этот цвет... поэтому успех не всегда зеленый и т. д.... Все еще исследую