如何使用chartist.js插件?

时间:2018-06-07 05:27:00

标签: reactjs chartist.js

我使用chartist.js制作饼图组件。我想使用图例插件https://codeyellowbv.github.io/chartist-plugin-legend/

我的饼图中没有传说。见下面的截图

代码:

import React, { Component } from 'react';
import ChartistGraph from "react-chartist";
import Legend from "chartist-plugin-legend";

import './piechart.css';

let options = {
  width:400,
  height:500,
  labelInterpolationFnc: function(value) {
    return value[0]
  }
};


let plugin = {
    plugin:'legend'
}


class Chart extends Component {

  render(){
    return(
      <div>
          <div className="center">
          <ChartistGraph data={data} options={options} plugins={plugin} type="Pie"/>
          </div>
      </div>

    )}

}

export default Chart;

截图:

enter image description here

2 个答案:

答案 0 :(得分:3)

您可以通过在options属性上添加插件来使用该插件,但首先需要导入ff。依赖关系:

import React, { Component } from 'react';
import ChartistGraph from "react-chartist";
import Legend from "chartist-plugin-legend";

添加插件:

let options = {
    width:400,
    height:500,
    plugins: [
        Legend()
    ]
};

渲染:<ChartistGraph data={data} options={options} type={type} />

并且由于未包含CSS,您可以检查plugin here的索引文件并使用它。

答案 1 :(得分:1)

尝试使用chartist-plugin-legend返回Chartist.plugins.legend函数。您也可以传递选项以添加自定义,这是您可以阅读它的链接:Link chartist-plugin-legend

let plugins = [
    Legend()
]

也做了这个改变,因为反应图表不会采取任何名为插件的道具。

<ChartistGraph data={data} options={{...options, plugins}} type="Pie"/>

现在在目录中添加.css文件并将其导入组件文件中。以下内容。内容与插件页面上提到的内容相同。

.ct-legend {
    position: relative;
    z-index: 10;

    li {
        position: relative;
        padding-left: 23px;
        margin-bottom: 3px;
    }

    li:before {
        width: 12px;
        height: 12px;
        position: absolute;
        left: 0;
        content: '';
        border: 3px solid transparent;
        border-radius: 2px;
    }

    li.inactive:before {
        background: transparent;
    }

    &.ct-legend-inside {
        position: absolute;
        top: 0;
        right: 0;
    }

    @for $i from 0 to length($ct-series-colors) {
        .ct-series-#{$i}:before {
            background-color: nth($ct-series-colors, $i + 1);
            border-color: nth($ct-series-colors, $i + 1);
        }
    }
}

现在您可以根据需要进行样式设置。 legend插件还提供了可以发送的某些选项。阅读相关内容并相应地传递选项