如何使用javascript获取趋势线图

如何使用javascript获取趋势线图,javascript,flot,trendline,Javascript,Flot,Trendline,我试图得到一个三阶多项式趋势线,计算r平方值。我只得到了折线图。在图表中,未显示结束线。这是我的密码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=

我试图得到一个三阶多项式趋势线,计算r平方值。我只得到了折线图。在图表中,未显示结束线。这是我的密码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<script type="text/javascript" src="js plugins/excanvas.js"></script>
<script type="text/javascript" src="jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="jquery.flot.min.js"></script>
<script type="text/javascript" src="jquery.flot.axislabels.min.js"></script>
<script type="text/javascript" src="js plugins/jquery.flot.symbol.min.js"></script>

<script type="text/javascript">
    var data = [
        [0, 11],
        [1, 15],
        [2, 25],
        [3, 24],
        [4, 13],
        [5, 18],
        [6, 22],
        [7, 45],
        [8, 33],
        [9, 12],
        [10, 27],
        [11, 24],
        [12, 20]
    ];
    var bin = [
        [0, 1],
        [1, 2],
        [2, 3],
        [3, 4],
        [4, 5],
        [5, 6],
        [6, 7],
        [7, 8],
        [8, 9],
        [9, 10],
        [10, 11],
        [11, 12],
        [12, 13],
        [13, 14]
    ];

    var dataset = [{
        label: "Frequency",
        data: data,
        points: {
            symbol: "triangle"
        }
    }];
    var options = {
        series: {
            lines: {
                show: true
            },
            points: {
                radius: 3,
                fill: true,
                show: true
            }
        },
        /*
        series:{
                bars:{
                        show:true
                    }
                },
        bars:{
                align:"center",
                barWidth:1
             },
        */

        xaxis: {
            //mode:"",
            //tickSize:[],
            ticks: bin,
            ticklength: 0,
            axisLabel: "Bin",
            axisLabelUseCanvas: true,
            axisLabelFontSizePixels: 12,
            axisLabelFontFamily: 'Verdana, Arial',
            axisLabelPadding: 10
        },
        yaxis: {
            axisLabel: "Frequncy",
            axisLabelUseCanvas: true,
            axisLabelFontSizePixels: 12,
            axisLabelFontFamily: 'Verdana, Arial',
            axisLabelPadding: 3,
            tickFormatter: function (v, axis) {
                return v + "Hz";
            }
        },
        legend: {
            noColumns: 0,
            labelBoxBorderColor: "#000000",
            position: "nw"
        },
        grid: {
            hoverable: true,
            borderWidth: 2,
            borderColor: "#633200",
            backgroundColor: {
                colors: ["#ffffff", "#EDF5FF"]
            }
        },
        trendline: {

            type: 'polynomial',
            degree: 3,
            visibleInLegend: true,

        },
        colors: ["#FF0000", "#0022FF"]
    };

    $(document).ready(function () {
        $.plot($("#flot-placeholder"), dataset, options);
        $("#flot-placeholder").UseTooltip();
    });

    var previousPoint = null,
        previousLabel = null;

    $.fn.UseTooltip = function () {
        $(this).bind("plothover", function (event, pos, item) {
            if (item) {
                if ((previousLabel != item.series.label) || (previousPoint != item.dataIndex)) {
                    previousPoint = item.dataIndex;
                    previousLabel = item.series.label;
                    $("#tooltip").remove();

                    var x = item.datapoint[0];
                    var y = item.datapoint[1];

                    var color = item.series.color;

                    //console.log(item.series.xaxis.ticks[x].label);                

                    showTooltip(item.pageX,
                    item.pageY,
                    color,
                        "<strong>" + item.series.label + "</strong><br>" + item.series.xaxis.ticks[x].label + " : <strong>" + y + "</strong> Hz");
                }
            } else {
                $("#tooltip").remove();
                previousPoint = null;
            }
        });
    };

    function showTooltip(x, y, color, contents) {
        $('<div id="tooltip">' + contents + '</div>').css({
            position: 'absolute',
            display: 'none',
            top: y - 40,
            left: x - 120,
            border: '2px solid ' + color,
            padding: '3px',
                'font-size': '9px',
                'border-radius': '5px',
                'background-color': '#fff',
                'font-family': 'Verdana, Arial, Helvetica, Tahoma, sans-serif',
            opacity: 0.9
        }).appendTo("body").fadeIn(200);
    }
</script>
</head>

<body>
    <div id="flot-placeholder" style="width:450px;height:300px;margin:0 auto">     </div>
</body>
</html>

无标题文件
风险值数据=[
[0, 11],
[1, 15],
[2, 25],
[3, 24],
[4, 13],
[5, 18],
[6, 22],
[7, 45],
[8, 33],
[9, 12],
[10, 27],
[11, 24],
[12, 20]
];
var bin=[
[0, 1],
[1, 2],
[2, 3],
[3, 4],
[4, 5],
[5, 6],
[6, 7],
[7, 8],
[8, 9],
[9, 10],
[10, 11],
[11, 12],
[12, 13],
[13, 14]
];
变量数据集=[{
标签:“频率”,
数据:数据,
要点:{
符号:“三角形”
}
}];
变量选项={
系列:{
线路:{
秀:真的
},
要点:{
半径:3,
填充:是的,
秀:真的
}
},
/*
系列:{
酒吧:{
秀:真的
}
},
酒吧:{
对齐:“居中”,
条宽:1
},
*/
xaxis:{
//模式:“,
//大小:[],
滴答声:垃圾桶,
长度:0,
axisLabel:“Bin”,
Axislabulusecanvas:没错,
axisLabelFontSizePixels:12,
axisLabelFontFamily:“Verdana,Arial”,
axisLabelPadding:10
},
亚克斯:{
axisLabel:“frequency”,
Axislabulusecanvas:没错,
axisLabelFontSizePixels:12,
axisLabelFontFamily:“Verdana,Arial”,
axisLabelPadding:3,
tickFormatter:函数(v,轴){
返回v+“Hz”;
}
},
图例:{
无列:0,
labelBoxBorderColor:#000000“,
位置:“西北”
},
网格:{
悬停:是的,
边界宽度:2,
边框颜色:“633200”,
背景颜色:{
颜色:[“#ffffff”、“#EDF5FF”]
}
},
趋势线:{
类型:'多项式',
学位:3,
visibleInLegend:是的,
},
颜色:[“FF0000”,“0022FF”]
};
$(文档).ready(函数(){
$.plot($(“#flot占位符”)、数据集、选项;
$(“#flot占位符”).UseTooltip();
});
var previousPoint=null,
previousLabel=null;
$.fn.UseTooltip=函数(){
$(this).bind(“plothover”,函数(事件、位置、项目){
如果(项目){
if((previousLabel!=item.series.label)| |(previousPoint!=item.dataIndex)){
previousPoint=item.dataIndex;
previousLabel=item.series.label;
$(“#工具提示”).remove();
var x=项目数据点[0];
变量y=项目数据点[1];
var color=item.series.color;
//console.log(item.series.xaxis.ticks[x].label);
显示工具提示(item.pageX,
项目1.pageY,
颜色
“”+item.series.label+”
“+item.series.xaxis.ticks[x].label+”:“+y+”Hz”); } }否则{ $(“#工具提示”).remove(); previousPoint=null; } }); }; 函数显示工具提示(x、y、颜色、内容){ $(''+内容+'').css({ 位置:'绝对', 显示:“无”, 顶部:y-40, 左:x-120,, 边框:“2倍纯色”+彩色, 填充:“3px”, “字体大小”:“9px”, “边界半径”:“5px”, “背景色”:“fff”, “字体系列”:“Verdana、Arial、Helvetica、Tahoma、sans serif”, 不透明度:0.9 }).appendTo(“body”).fadeIn(200); }

如何在折线图中获得多项式趋势线?

Flot本身不支持趋势线,您可以使用中的选项语法。如果你想要Flot中的趋势线,你必须计算它的函数,用该函数的值填充一个数组,并将该数组作为数据系列添加到你的绘图中。下面是一个线性趋势线的示例:感谢@Raidri的响应。我尝试使用google visualization,但它只支持线性和指数,不适用于Polynomilot本身不支持趋势线,请使用中的选项语法。如果你想要Flot中的趋势线,你必须计算它的函数,用该函数的值填充一个数组,并将该数组作为数据系列添加到你的绘图中。下面是一个线性趋势线的示例:感谢@Raidri的响应。我尝试使用google visualization,但它只支持线性和指数,不为多项式工作