使用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}>
// 如果serie需要自定义,而且是可添加或删减的,可以使用 notMerge 使之不合并,从而及时更新数据
<ReactEcharts notMerge 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 `的更多相关文章
- 【带着canvas去流浪】(2)绘制折线图
目录 一. 任务说明 二. 重点提示 三. 示例代码 3.1 一般折线图 3.2 用贝塞尔曲线绘制平滑折线图 四. 大数据量场景 示例代码托管在:https://github.com/dashnowo ...
- 带着canvas去流浪系列之二 绘制折线图
[摘要] 用canvasAPI实现echarts简易图表 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 任务说明 使用原生canvasAPI绘制 ...
- 【Canvas】(2)---绘制折线图
绘制折线图 之前在工作的时候,用过百度的ECharts绘制折线图,上手很简单,这里通过canvas绘制一个简单的折线图.这里将一整个绘制过程分为几个步骤: 1.绘制网格 2.绘制坐标系 3.绘制点 4 ...
- 用canvas绘制折线图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php中用GD绘制折线图
php中用GD绘制折线图,代码如下: Class Chart{ private $image; // 定义图像 private $title; // 定义标题 private $ydata; // 定 ...
- UUChart的使用--iOS绘制折线图
UUChart是一个用于绘制图表的第三方,尤其适合去绘制折线图. 二.下载地址: https://github.com/ZhipingYang/UUChartView 三.使用 第一步.首先我们将下载 ...
- html5绘制折线图
html5绘制折线图详细代码 <html> <canvas id="a_canvas" width="1000" height="7 ...
- Android自己定义组件系列【9】——Canvas绘制折线图
有时候我们在项目中会遇到使用折线图等图形,Android的开源项目中为我们提供了非常多插件,可是非常多时候我们须要依据详细项目自己定义这些图表,这一篇文章我们一起来看看怎样在Android中使用Can ...
- JFreeChart绘制折线图实例
JFreeChart是JAVA平台上的一个开放的第三方图表绘制类库.只要下载JFreeChart的类库,导入项目即可使用.下面是一个绘制折线图的实例.各处注释都已经写的比较清晰了. package c ...
随机推荐
- 前端——jQuery
初识jQuery 什么是jQuery? jQuery就是JavaScript和Query,是辅助JavaScript开发的库,应用广泛,形成了行业标准.它对DOM操作做了很好的封装,我们可以用jQue ...
- 三种方法实现Hadoop(MapReduce)全局排序(1)
我们可能会有些需求要求MapReduce的输出全局有序,这里说的有序是指Key全局有序.但是我们知道,MapReduce默认只是保证同一个分区内的Key是有序的,但是不保证全局有序.基于此,本文提供三 ...
- Java HttpClient4.5.2发送post请求示例
public static Map<String, Object> invokeCapp(String URL, Map paramMap) throws Exception { Map ...
- 如何查杀stopped进程
在Linux系统下面,top命令可以查看查看stopped进程.但是不能查看stopped进程的详细信息.那么如何查看stopped 进程,并且杀掉这些stopped进程呢? ps -e j | gr ...
- 【学习总结】GirlsInAI ML-diary day-14-function函数
[学习总结]GirlsInAI ML-diary 总 原博github链接-day14 认识函数function 函数相当于一个固定的公式,一个映射.有输入,有输出. 1-python内置函数 max ...
- es6 模本字符串拼接方法 ``
1.字符串拼接 可以使用 es6 ` ` 配合 ${xxx} 具体操作上代码 <!DOCTYPE html> <html lang="en"> < ...
- Shell命令-文件及内容处理之more、less
文件及内容处理 - more.less 1. more:分页显示文件内容 more命令的功能说明 more 命令类似 cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白 ...
- Jenkins与sonar扫描的集成问题
记录本周遇到的头疼了很久的一个问题,由于公司需要使用jenkins来自动管理构建项目,然后在关联sonar对项目代码质量进行审核. 接着坑爹的问题来了,原有的技术手段为项目构建成功后通过jenkins ...
- Bugku 杂项 眼见非实
把文件放进Kali中可以看到这是一个zip文件,解压后得到一个docx,继续翻 (在windows中是打不开的 在word/document.xml中可以找到flag
- VueRouter和Vue生命周期(钩子函数)
一.vue-router路由 1.介绍 vue-router是Vue的路由系统,用于定位资源的,在页面不刷新的情况下切换页面内容.类似于a标签,实际上在页面上展示出来的也是a标签,是锚点.router ...