Добавьте метку в столбчатую диаграмму Highchart

#javascript #asp.net-mvc #highcharts

Вопрос:

Я пытаюсь составить эту диаграмму, используя Highchart.js. Теперь я должен добавить ярлыки в формате, показанном на следующем рисунке. Кто-нибудь может мне помочь, пожалуйста. Я использую ASP.net MVC и jquery для этого.

введите описание изображения здесь

Вид такой

   <div id="hourlyChart"></div>
 

И файл JS является

 Highcharts.chart('hourlyChart', {
    chart: {
        type: 'column'
    },
    credits: false,
    title: {
        text: ''
    },
    legend: { enabled: false },
    xAxis: {
        categories: label
    },
    yAxis: [{
        min: 0,
        title: {
            text: ''
        }
    }],
    legend: {
        shadow: false
    },
    tooltip: {
        shared: true
    },
    plotOptions: {
        column: {
            grouping: false,
            shadow: false,
            borderWidth: 0
        }
    },
    series: [{
        name: 'Target',
        color: 'rgba(189, 195, 199, 1)',
        data: target,
        showInLegend: false,
    }, {
        name: 'Achieved',
        color: 'rgb(242, 38, 19)',
        data: achieved,
        pointPadding: 0.2,
        showInLegend: false          
    }
    ]
});
 

Из этого я получаю такой большой результат

введите описание изображения здесь

Заранее спасибо.

Ответ №1:

Используйте метки данных и располагайте их по y свойствам. Пример:

     plotOptions: {
        column: {
            ...,
            dataLabels: {
                verticalAlign: 'bottom',
                allowOverlap: true,
                enabled: true,
                inside: true
            },
        }
    },
    series: [{
        dataLabels: {
            color: 'rgba(189, 195, 199, 1)',
            y: -310
        },
        ...
    }, {
        dataLabels: {
            color: 'rgb(242, 38, 19)',
            y: -330
        },
        ...
    }]
 

Живая демонстрация: http://jsfiddle.net/Черная метка/hvxbpqj5/

Ссылка на API: https://api.highcharts.com/highcharts/series.column.Метки данных

Комментарии:

1. Спасибо @ppotaczek за вашу помощь. Я хотел отметить, что иногда метки перекрывают ось. Например, если вы измените значение последнего в целевых данных с 700 на 780. Но я думаю, что я должен применить MAX к yaxis на основе максимального значения target. Спасибо за вашу помощь. Я думаю, что могу применить свою логику к вашей. Дайте мне знать, если у вас есть идея получше. Еще раз спасибо вам!

2. Привет @Драшти Патель, у меня нет лучшей идеи. Вам нужно каким-то образом зарезервировать место, необходимое для этикеток.