Подтвердить что ты не робот

Добавить схему для точки данных SVG в файле chartist.js

Я играю с Chartist.js и просто задаюсь вопросом, можете ли вы дать мне руку, применяющую некоторый стиль для SVG. Вот мой код:

JQuery

new Chartist.Line('.ct-chart', {
  labels: [1, 2, 3, 4, 5, 6, 7, 8],
  series: [
    [5, 9, 7, 8, 5, 3, 5, 4]
  ]
}, {
  low: 0,
  showArea: true
});

HTML:

<div class="ct-chart ct-perfect-fourth"></div>

CSS

.ct-chart .ct-series.ct-series-a .ct-area { fill: orange; }
.ct-chart .ct-series.ct-series-a .ct-line { stroke: orange; }
.ct-chart .ct-series.ct-series-a .ct-point { stroke: orange; }

body { background: #203135; }

Я просто пытаюсь имитировать то, что у них есть на этом удивительном дизайне, который я нашел на дриблинге, где каждая точка данных имеет контур более темного оттенка/подобной тени на фоне. Я попытался использовать контур в CSS, но он создает квадрат черного (или любого другого цвета, который я выбираю) вокруг точки данных, и я не могу решить, как его округлить Dribbble shot from Piotr

И, наконец, вот что у меня уже есть в jsFiddle - http://jsfiddle.net/andyjh07/gLnkwLj0/

4b9b3361

Ответ 1

Элемент <line> по умолчанию для точки данных можно заменить элементом <circle>. Таким образом вы можете контролировать цвет, ширину и цвет заливки круга.

DEMO

var chart = new Chartist.Line('.ct-chart', {
  labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  series: [
    [5, 9, 7, 8, 5, 3, 5, 4, 9, 23],
  ]
}, {
  low: 0,
  showArea: true,
  lineSmooth: Chartist.Interpolation.simple({
    divisor: 2
  }),
});

chart.on('draw', function(data) {
  if (data.type === 'point') {
    var circle = new Chartist.Svg('circle', {
      cx: [data.x],
      cy: [data.y],
      r: [7],
    }, 'ct-circle');
    data.element.replace(circle);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.7.2/chartist.min.js"></script>
<link href="#" onclick="location.href='https://cdnjs.cloudflare.com/ajax/libs/chartist/0.7.2/chartist.min.css'; return false;" rel="stylesheet" />
<style>
  .ct-chart .ct-series.ct-series-a .ct-area {fill: orange;}
  .ct-chart .ct-series.ct-series-a .ct-line {stroke: orange;stroke-width: 3px;}
  .ct-circle {fill: orange;stroke-width: 5;stroke: #203135;}
  body {background: #203135;}
</style>
<div class="ct-chart ct-perfect-fourth"></div>