Chartist .SVG Выравнивание / Заполнение

1

Я создаю круговую диаграмму Chartist со следующими данными:

var mapPieData = {
series: [
  { value: 578, className: "pieNegativeColour", label: "online" },
  { value: 3182, className: "piePositiveColour", label: "offline" }
],
highest: { label: "Huawei", value: "10258", className: "pieColour1" },
maximum: 3760};

Я использую следующие параметры для его настройки:

var mapPieOptions = {
showLabel: true,
fullWidth: true,
chartPadding: 0};

Я должен наложить сгенерированную круговую диаграмму на карту .SVG.

Проблема в том, что сгенерированная круговая диаграмма центрируется внутри контейнера .SVG, который шире, чем нужно. Это означает, что позиционирование нецелесообразно. Если я расположу круговую диаграмму в верхнем левом углу, она на самом деле окажется в верхней середине, а это не то, что я хочу.

Изображение 174551

Я хочу удалить это лишнее пространство вокруг круговой диаграммы.

Теги:
svg
chartist.js

1 ответ

0

Я смог воссоздать вашу круговую диаграмму с предоставленным кодом на веб-сайте с примерами скрипок.

http://gionkunz.github.io/chartist-js/examples.html

$('.ct-chart').css({'background-color':'white'});

var data = {
    series: [
      { value: 578, className: "ct-series-c", label: "online" },
      { value: 3182, className: "ct-series-a", label: "offline" }
    ],
    highest: { label: "Huawei", value: "10258", className: "pieColour1" },
    maximum: 3760
};

var options = {
    showLabel: true,
    fullWidth: true,
    chartPadding: 0
};

new Chartist.Pie('.ct-chart', data, options); 

Изображение 174551

Я проанализировал это и заметил, что, если я установлю отступ на отрицательное значение, рендер увеличится в размере, но будет обрезан.

var options = {
    showLabel: true,
    fullWidth: true,
    chartPadding: -40
};

Изображение 174551

Затем я увеличил размер содержащего элемента, который составлял 100%, но фактически не занимал всю высоту.

Установив контейнерный элемент на высоту 750 пикселей (по ширине и ширине, он будет занимать всю ширину элемента).

Изображение 174551

Изображение 174551

Так что теперь мы должны автоматизировать это. Предполагая, что у вас есть JQuery под рукой, вы можете просто сделать:

var $chart = $('.ct-chart');
$chart.css({'height':$chart.width()+'px'});

Пример запуска на сайте сниппетов:

var $chart = $('.ct-chart');
$chart.css({'background-color':'white','height':$chart.width()+'px'}); 
var data = { 
    series: [ 
      { value: 578, className: "ct-series-c", label: "online" },
      { value: 3182, className: "ct-series-a", label: "offline" }
    ],
    highest: { label: "Huawei", value: "10258", className: "pieColour1" },
    maximum: 3760
};

var options = {
    showLabel: true,
    fullWidth: true,
    chartPadding: 0
};

new Chartist.Pie('.ct-chart', data, options); 

Если у вас нет jQuery, замените строки jQuery на:

var chart = document.querySelector('#pie-with-custom-labels .ct-chart');
chart.style.height = chart.clientWidth+"px";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню