ltian123

线性拟合,

回归算法如何把数据分析与echarts 图表结合

 echarts 的一个扩展库:echarts-stat.js

ecStat 是 ECharts 的统计和数据挖掘工具。

直接引用或者下载:

<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>

  调用:

var myRegression = ecStat.regression(regressionType, data, order);

  

参数说明
regressionType:回归类型(String),有四种回归算法类型:\'linear\', \'exponential\', \'logarithmic\', \'polynomial\'
data:要统计的数据,是个二维数组(Array),一维数组值分别表示自变量和因变量的值。
order:多项式的阶数(number)。对于非多项式回归,可以忽略该参数。
 
返回值说明
myRegression:返回一个对象. 包括用于绘制折线图的拟合数据点 points,回归曲线的参数 parameter,以及拟合出的曲线表达式 expression。如下:
 
// 绘制折线图的拟合数据点
 myRegression.points = [
    [1, 2],
    [3, 4],
    ...
 ];

 // 这是线性回归到额参数,对于其它的回归类型,返回值有所不同
 myRegression.parameter = {
    gradient: 1.695,
    intercept: 3.008
 };

// 拟合曲线的表达式
 myRegression.expression = \'y = 1.7x + 3.01\';

  示例数据:

 <table id="tblSearch" class="search_all" style="width:100%;display:block;">
        <tr>
            <td id="haha" width="50%" style="display:block;">        
                <!-- 量值溯源误差趋势 -->
                <div class="spDiv" style="position:auto;height: 450px;width:100%;">
                <div id="showLedgerCountBar" style="height:100%;width:100%;"></div>
                </div>
            </td>
        </tr>
    </table>
   
   <script language="javascript">
   var dataEcstat = [
    [1990, 97.50795611],
    [1991, -1.47594249]
    ]
    init();
    
    function init(){
        ledgerCountBar();
    }
    

    function ledgerCountBar(){
        var ledgerCount = echarts.init(document.getElementById(\'showLedgerCountBar\'));

       
        var regressionDemo = ecStat.regression( "linear", dataEcstat, 1);

        
        
        option = {
                title: {
                text: \' 折线图\',
                            subtext: \' \',
                            left: \'center\'
                        },
                 tooltip: {
                            trigger: \'item\',
                            formatter: \'{a} <br/>{b} : {c}\'
                        },
                xAxis: {
                    type: \'category\'
                   
                },
                yAxis: {
                    type: \'value\'
                },
                series: [{
                     name: \'数据\',
                     label: {
                                    show: true,
                                    position: "top",
                                     formatter:\' {c}\'
                                  },
                    data: dataEcstat,
                    type: \'line\'
                },
                {
                     name: \'误差趋势拟合\',
                     label: {
                                    show: true,
                                    position: "top",
                                     formatter:\' {c}\'
                                  },
                    data:  regressionDemo.points,
                    lineStyle: {
                       color: "#f00"
                   },
                    type: \'line\'
                }
                ]
            };

        ledgerCount.setOption(option);
        window.onresize = ledgerCount.resize;
    }
    

    
    
</script>

参考:https://www.jianshu.com/p/c97273a05167

 
 

分类:

技术点:

相关文章:

  • 2021-10-16
  • 2022-12-23
  • 2021-11-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-25
  • 2021-12-26
  • 2021-12-31
猜你喜欢
  • 2021-07-13
  • 2021-08-31
  • 2021-04-26
  • 2021-08-19
  • 2021-09-23
  • 2022-12-23
相关资源
相似解决方案