Круги легенды пирога Highchart

Я использую круговую диаграмму с высокой диаграммой для создания кольцевой диаграммы, но хотел бы, чтобы значки легенды были кружками, какие-либо идеи ??? Ниже представлен макет и фактическая веб-версия. Спасибо...

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


person Pierce Butler    schedule 11.06.2013    source источник


Ответы (4)


Я подготовил решение на основе круговой диаграммы. Легенда генерируется по точкам данных автоматически в виде списка HTML. Затем все элементы получают цвета из серии и используют CSS3 для создания объекта круга (граница-радиус). В результате вам нужно добавить событие клика.

http://jsfiddle.net/N3KAC/1/

 $legend = $('#customLegend');

    $.each(chart.series[0].data, function (j, data) {

        $legend.append('<div class="item"><div class="symbol" style="background-color:'+data.color+'"></div><div class="serieName" id="">' + data.name + '</div></div>');

    });

    $('#customLegend .item').click(function(){
        var inx = $(this).index(),
            point = chart.series[0].data[inx];

        if(point.visible)
            point.setVisible(false);
        else
            point.setVisible(true);
    });  

CSS:

    .symbol {
    width:20px;
    height:20px;
    margin-right:20px;
    float:left;
    -webkit-border-radius: 10px;
    border-radius: 10px;
}
.serieName {
    float:left;
    cursor:pointer;
}

.item {
    height:40px;
    clear:both;
}
person Sebastian Bochan    schedule 11.06.2013

В последних версиях Highcharts вы можете использовать symbolWidth: width и symbolRadius: width/2 внутри legend: {}.

Посмотрите эту демонстрацию JSFiddle: http://jsfiddle.net/Wzs9L/

person walterpaoli    schedule 29.07.2014
comment
Так чисто и эффективно. Превосходно. - person Halvor Holsten Strand; 16.08.2014
comment
@walterpaoli, как изменить легенду на прямоугольник с круга, будет полезно, если вы сможете это предоставить. Спасибо! - person Rohitesh; 06.09.2017
comment
вы можете установить для symbolRadius значение 0. - person walterpaoli; 07.09.2017

Другим способом добиться этого может быть переопределение стиля с помощью CSS. Просто добавьте класс ниже в таблицу стилей:

.highcharts-legend-item rect {
    width: 12px;
    height: 12px; /* height = width */
    rx: 50%;
    ry: 50%;
}

и это заменит стиль по умолчанию для элемента SVG Rectangle.

person ttvd94    schedule 12.06.2016

Есть довольно простое решение. Просто установите следующие свойства в chartoptions:

chartoptions.legend.symbolHeight = 12;
chartoptions.legend.symbolWidth = 12;
chartoptions.legend.symbolRadius = 6;

Дополнительные сведения см. в документации по API highcharts.

Проверьте это jsFiddle.

person Amoolya S Kumar    schedule 29.04.2016
comment
Добро пожаловать в StackOverflow! Пожалуйста, подумайте, Как мне написать хороший ответ? – Обеспечьте контекст для ссылок. - person Gerold Broser; 29.04.2016