【React】react项目引入echarts插件 K线图
<div class="image-package"><div class="image-caption">
<p><img src="https://img2018.cnblogs.com/blog/1255309/201906/1255309-20190608100936337-1762194371.png" alt=""></p>
<p> </p>
</div>
</div>
<h6><img src="https://img2018.cnblogs.com/blog/1255309/201906/1255309-20190608101013723-1661936583.png" alt=""></h6>
<p> </p>
<h6>参考npm文档:https://www.npmjs.com/package/echarts-for-react</h6>
<p>由于npm上已经有针对react项目出的echarts插件,所以在这里直接安装</p>
<h6>第一步:npm安装echarts-for-react</h6>
<pre class="hljs cpp"><code class="cpp">npm install --save echarts-<span class="hljs-keyword">for-react
npm install echarts --save <span class="hljs-comment">//如果有报错找不到echarts模块,需要在安装一下exharts'
</span></span></code></pre>
<h6>第二步:引入模块和组件</h6>
<pre class="hljs javascript"><code class="javascript"><span class="hljs-keyword">import echarts <span class="hljs-keyword">from <span class="hljs-string">'echarts'
<span class="hljs-keyword">import echarts <span class="hljs-keyword">from <span class="hljs-string">'echarts/lib/echarts'
<ReactEcharts option={<span class="hljs-keyword">this.getOption()} />
</span></span></span></span></span></span></span></code></pre>
<h6>第三步:参考echarts官网实例添加option参数</h6>
<p>参考官网:https://echarts.baidu.com/examples/</p>
<p> 配置 option =>>></p>
<pre class="hljs javascript"><code class="javascript">getOption =<span class="hljs-function"><span class="hljs-params">()=> {
<span class="hljs-keyword">let option = {
<span class="hljs-attr">title:{
<span class="hljs-attr">text:<span class="hljs-string">'用户骑行订单'
},
<span class="hljs-attr">tooltip:{ <span class="hljs-comment">//展示数据
trigger:<span class="hljs-string">'axis'
},
<span class="hljs-attr">xAxis:{
<span class="hljs-attr">data:[<span class="hljs-string">'周一',<span class="hljs-string">'周二',<span class="hljs-string">'周三',<span class="hljs-string">'周四',<span class="hljs-string">'周五',<span class="hljs-string">'周六',<span class="hljs-string">'周日']
},
<span class="hljs-attr">yAxis:{
<span class="hljs-attr">type:<span class="hljs-string">'value'
},
<span class="hljs-attr">series:[
{
<span class="hljs-attr">name:<span class="hljs-string">'订单量',
<span class="hljs-attr">type:<span class="hljs-string">'bar',
<span class="hljs-attr">data:[<span class="hljs-number">1000,<span class="hljs-number">2000,<span class="hljs-number">1500,<span class="hljs-number">3000,<span class="hljs-number">2000,<span class="hljs-number">1200,<span class="hljs-number">800]
}
]
}
<span class="hljs-keyword">return option;
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<h6>注意:由于引入echarts文件太大,所以一般按需引入,完整项目代码如下:</h6>
<pre class="hljs javascript"><code class="javascript"><span class="hljs-keyword">import React <span class="hljs-keyword">from <span class="hljs-string">'react';
<span class="hljs-keyword">import {Card} <span class="hljs-keyword">from <span class="hljs-string">'antd';
<span class="hljs-keyword">import echartTheme <span class="hljs-keyword">from <span class="hljs-string">'./../themeLight'
<span class="hljs-comment">//不是按需加载的话文件太大
<span class="hljs-comment">//import echarts from 'echarts'
<span class="hljs-comment">//下面是按需加载
<span class="hljs-keyword">import echarts <span class="hljs-keyword">from <span class="hljs-string">'echarts/lib/echarts'
<span class="hljs-comment">//导入折线图
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/chart/line';<span class="hljs-comment">//折线图是line,饼图改为pie,柱形图改为bar
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/tooltip';
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/title';
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/legend';
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/markPoint';
<span class="hljs-keyword">import ReactEcharts <span class="hljs-keyword">from <span class="hljs-string">'echarts-for-react';
<span class="hljs-keyword">export <span class="hljs-keyword">default <span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Line <span class="hljs-keyword">extends <span class="hljs-title">React.<span class="hljs-title">Component{
componentWillMount(){
<span class="hljs-comment">//主题的设置要在willmounted中设置
echarts.registerTheme(<span class="hljs-string">'Imooc',echartTheme);
}
getOption =<span class="hljs-function"><span class="hljs-params">()=> {
<span class="hljs-keyword">let option = {
<span class="hljs-attr">title:{
<span class="hljs-attr">text:<span class="hljs-string">'用户骑行订单',
<span class="hljs-attr">x:<span class="hljs-string">'center'
},
<span class="hljs-attr">tooltip:{
<span class="hljs-attr">trigger:<span class="hljs-string">'axis',
},
<span class="hljs-attr">xAxis:{
<span class="hljs-attr">data:[<span class="hljs-string">'周一',<span class="hljs-string">'周二',<span class="hljs-string">'周三',<span class="hljs-string">'周四',<span class="hljs-string">'周五',<span class="hljs-string">'周六',<span class="hljs-string">'周日']
},
<span class="hljs-attr">yAxis:{
<span class="hljs-attr">type:<span class="hljs-string">'value'
},
<span class="hljs-attr">series:[
{
<span class="hljs-attr">name:<span class="hljs-string">'OFO订单量',
<span class="hljs-attr">type:<span class="hljs-string">'line', <span class="hljs-comment">//这块要定义type类型,柱形图是bar,饼图是pie
data:[<span class="hljs-number">1000,<span class="hljs-number">2000,<span class="hljs-number">1500,<span class="hljs-number">3000,<span class="hljs-number">2000,<span class="hljs-number">1200,<span class="hljs-number">800]
}
]
}
<span class="hljs-keyword">return option
}
render(){
<span class="hljs-keyword">return(
<span class="xml"><span class="hljs-tag"><<span class="hljs-name">div>
<span class="hljs-tag"><<span class="hljs-name">Card <span class="hljs-attr">title=<span class="hljs-string">"折线图表之一">
<span class="hljs-tag"><<span class="hljs-name">ReactEcharts <span class="hljs-attr">option=<span class="hljs-string">{this.getOption()} <span class="hljs-attr">theme=<span class="hljs-string">"Imooc"<span class="hljs-attr">style=<span class="hljs-string">{{height:'<span class="hljs-attr">400px'}}/>
<span class="hljs-tag"></<span class="hljs-name">Card>
<span class="hljs-tag"></<span class="hljs-name">div>
)
}
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<h6>注意:按需加载是引入node_modules文件夹中的js文件,所以,如果记得改import 'echarts/lib/chart/line'; 折线图不用改,饼图和柱形图line分别改为pie和bar</h6>
<p> </p>
<p>可以参考 简书文章 https://www.jianshu.com/p/9d97e5cdf486</p>
<p><img src="https://img2018.cnblogs.com/blog/1255309/201906/1255309-20190608101616360-1308431727.gif" alt=""></p>
<p> </p><br><br>
来源:https://www.cnblogs.com/reeber/p/10990082.html
頁:
[1]