使用echarts-for-react 绘制折线图 报错:`series.type should be specified `

Posted aloehui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用echarts-for-react 绘制折线图 报错:`series.type should be specified `相关的知识,希望对你有一定的参考价值。

解决办法: 

     在动态获取值的函数前面加 访问器属性  get ,去获取对象的属性

@inject(‘commonStore‘, ‘reportUIStore‘)
@observer
class LineEcharts extends React.Component<Props> {
  drawChart = () => {
    const { nameArr } = this.props
    const option = {
      tooltip: {
        trigger: ‘axis‘,
        axisPointer: {
          lineStyle: {
            color: ‘rgba(24,144,255,0.2)‘,
          },
        },
        formatter: (params: Params) => {
          let tip = ``
          if (params.length) {
            tip += params[0].axisValue + ‘<br/>‘
          }
          if (params.length && params.length === 1) {
            tip +=
              params[0].marker +
              params[0].seriesName +
              ‘ :‘ +
              params[0].data +
              ‘<br>‘
          }
          if (params.length > 1) {
            let num = params[0].data - params[1].data
            let rate = ((num / params[1].data) * 100).toFixed(2)
            if (num === 0) {
              rate = `0%`
            } else {
              rate = `${rate}%`
            }
            for (let i = 0; i < params.length; i++) {
              if (nameArr && nameArr.length) {
                params[i].seriesName = nameArr[i]
                tip +=
                  params[i].marker +
                  params[i].seriesName +
                  ‘ :‘ +
                  params[i].data +
                  ‘<br>‘
              }
            }
            tip += `变化:${num}(${rate})`
          }
          return tip
        },
      },
      grid: {
        left: ‘3%‘,
        right: ‘6%‘,
        bottom: ‘10%‘,
        containLabel: true,
      },
      xAxis: {
        axisLabel: {
          textStyle: {
            color: ‘#999‘,
          },
        },
        type: ‘category‘,
        boundaryGap: true,
        data: range(24).map(hour => `${hour}:00`),
        axisTick: {
          show: false,
        },
        axisLine: {
          show: true,
          lineStyle: {
            color: ‘#ccc‘,
            width: 1,
          },
        },
      },
      yAxis: [
        {
          type: ‘value‘,
          name: ‘‘,
          min: 0,
          max: 12000,
          interval: 3000,
          axisLabel: {
            formatter: ‘{value}‘,
          },
          axisTick: {
            show: false,
          },
          axisLine: {
            show: true,
            lineStyle: {
              color: ‘#ccc‘,
              width: 1,
            },
          },
          splitLine: {
            show: true,
            lineStyle: {
              color: ‘#eee‘,
            },
          },
        },
        {
          type: ‘value‘,
          name: ‘‘,
          min: 0,
          max: 150,
          interval: 50,
          axisLabel: {
            formatter: ‘{value}‘,
          },
          axisTick: {
            show: false,
          },
          axisLine: {
            show: true,
            lineStyle: {
              color: ‘#ccc‘,
              width: 1,
            },
          },
          splitLine: {
            show: true,
            lineStyle: {
              color: ‘#eee‘,
            },
          },
        },
      ],
    series: this.handlData,
    }
    return option
  }

// 注意这儿: 添加了get 错误消失了 get handlData() { let series: Series[]
= [] let { dataArr, nameArr, colors } = this.props dataArr.map((itm, i) => { let serie = { name: nameArr[i], type: ‘line‘, symbol: ‘circle‘, color: colors[i], symbolSize: 4, itemStyle: { normal: { lineStyle: { width: 2, color: colors[i], }, }, }, data: dataArr[i], } series.push(serie) }) return series } render() { return ( <div> <Loading loading={false}> <ReactEcharts option={this.drawChart()} /> </Loading> </div> ) } } export default LineEcharts export interface Props { reportUIStore?: ReportUIStore dataArr: number[][] nameArr: string[] colors: string[] } export interface Params { param: ParamsSingle[] length: number } export interface ParamsSingle { seriesName: string // 数据名,类目名 name: string // 传入的原始数据项 data: Object // 数据图形的颜色 color: string marker: string } export interface Series { name: string, type: string, symbol: string, color: string, symbolSize: number, itemStyle: { normal: { lineStyle: { width: number, color: string } } }, data: number[], }

 



以上是关于使用echarts-for-react 绘制折线图 报错:`series.type should be specified `的主要内容,如果未能解决你的问题,请参考以下文章

使用动态数据显示绘制折线图?

iOS 动画绘制线条颜色渐变的折线图

【R语言】--- ggplot2绘制折线图

用matlab画折线图

Canvas---绘制折线图

Python中使用matplotlib 如何绘制折线图?