zoukankan      html  css  js  c++  java
  • Flot API

    var options = {
    series: {
    lines: { lineWidth: 1, //指定线的宽度
    fill: false,
    show: true//是否显示
    },
    points: { radius:2,//线上的点的半径
    lineWidth: 2, 
    fill: true, show: true
    }
    },
    grid: { hoverable: true, clickable: true },


    xaxis: { mode: "time", timeformat: "%h:%M", minTickSize: [1, "minute"], show: false },//设置xaxis轴以时间为序列。 timeformat: "%h:%M" 设置时

    间显示格式,如果x轴为时间格式,那么需要将时间转换为UTC。

    将时间转换为UTC

    function GetTimeStep(time) {
    day = time.getHours();

    time = time.setHours(8 + day);

    time = new Date(time);

    time = time.getTime();

    return time;

    }

    使用方法为 var time=GetTimeStep(new Date("2012/5/24 10:52:11"));

    不晓得为虾米,我使用的时候传入的时间格式必须是"2012/5/24 10:52:11"..... 如果乃们实验一下也必须的这种格式的话,乃们需要格式化一下自己传入的时间


    yaxis: { ticks: spec ,min:minspec,max:maxspec},//ticks 可以自己指定坐标轴的显示文字spec=[10,30,50,60];可以大小间隔不一样,但是必须是有序的
    legend: { show: false }

    };

    grid: {  backgroundColor: "aliceblue" },//设置绘图区域的背景色

      xaxis: { mode: null, show: true ,ticks:xticks},//xticks是自己需要横坐标显示的数据的数组

    类似于这样的格式:var xticks=[[0,"第一个"],[1,"第二个"],....];//这个格式的Ticks可以是无序的,顺序都被前面的0  1...的固定好了...

     yaxis: { ticks: specArry, min: minspec, max: maxspec },//设置y轴。min:设置y轴的最小值;max:设置y轴的最大值。ticks:依旧是一个需要显示的数组

    xaxes: [
    { position: 'bottom' },//第一根x轴
    { position: 'top', show: false }//第二根x轴
    ]

    yaxes: [
    { position: 'left' }

    ]

    当有多个坐标时,需要在options里面设置坐标轴数组,position表示坐标的位置

    var data1 = [

    {
    color: "#66CD00",
    data: d1,
    lines: { show: true, steps: true },
    xaxis: 2,
    yaxis: 1,
    points: { radius: 1,
    lineWidth: 1.5, 
    fill: true,
    show: false
    }
    }

    ];

    data指需要显示的数据序列。

    color:绘制的点与线的颜色。

    lines:点之间的连接线。

    steps:连接线是否是阶梯状。

    xaxis:这个序列使用的x轴。在多个坐标轴中需要设置。第一根x坐标轴为:{ position: 'bottom' },第二根x坐标轴为:{ position: 'top', show: false }

    xaxes: [
    { position: 'bottom' },
    { position: 'top', show: false }
    ]

    points:设置序列上点的大小等,以及是否显示点。

    多跟坐标轴时,必须添加一下代码

    function getBoundingBoxForAxis(plot, axis) {
    var left = axis.box.left, top = axis.box.top,
    right = left + axis.box.width, bottom = top + axis.box.height;

    // some ticks may stick out, enlarge the box to encompass all ticks
    var cls = axis.direction + axis.n + 'Axis';
    plot.getPlaceholder().find('.' + cls + ' .tickLabel').each(function () {
    var pos = $(this).position();
    left = Math.min(pos.left, left);
    top = Math.min(pos.top, top);
    right = Math.max(Math.round(pos.left) + $(this).outerWidth(), right);
    bottom = Math.max(Math.round(pos.top) + $(this).outerHeight(), bottom);
    });

    return { left: left, top: top, right - left, height: bottom - top };
    }

    $.each(plot.getAxes(), function (i, axis) {
    if (!axis.show)
    return;

    var box = getBoundingBoxForAxis(plot, axis);

    $('<div class="axisTarget" style="position:absolute;left:' + box.left + 'px;top:' + box.top + 'px;' + box.width + 'px;height:' + box.height + 'px"></div>')
    .data('axis.direction', axis.direction)
    .data('axis.n', axis.n)
    .css({ backgroundColor: "坐标轴hover时的背景色。不设置即没有任何效果", opacity: 0, cursor: "pointer" })
    .appendTo(plot.getPlaceholder())
    .hover(
    function () { $(this).css({ opacity: 0.10 }) },
    function () { $(this).css({ opacity: 0 }) }
    )

    });

    说一下其tooltip,tooltip是由它自带的ShowToolTipS()方法实现的。默认原始的方法显示的tooltip都是在数据的右下角,貌似是这样的。

    tooltip里面如果显示东西太多,那么当在页面的最右端时,往往不能正常显示tooltips。tooltips的一部分被遮掉了。于是我们应该获取一下鼠标位置,并获取一下页面的宽度。如果鼠标所在位置处于页面右端某个区域时,让其tooltips别死犟的往右挤,显示在点的左边即可。邪恶了...

    function showTooltip(x, y, contents) {


    var ev = document.onmousemove;
    var mousePos = mousePosition(ev);//获取鼠标所在位置

    x1 = mousePos.x;//鼠标所在位置x轴
    var wsize = getPageSize();//获取页面宽度
    var Wwith = wsize.WinW;//页面可是去宽度

    var Whight = wsize.WinH;
    var scroheight = getScrollTop();
    //如果有滚动条的话,需要增加滚动条高度,以便滚动条出现时位置不会偏移

    //那么当页面出现滚动条时,y轴位置就会有所便宜。文档中鼠标y轴位置=鼠标在页面可视区的高度+滚动条的高度。

    y = mousePos.y + scroheight;


    if (x1 >= Wwith - 50 && x1 <= Wwith) {
    $('<div id="tooltip">' + contents + '</div>').css({
    position: 'absolute',
    display: 'inline',
    top: y + 2,
    left: x -200,//设置toolTip出现时的左上角的位置,此时正是距离页面右边50PX范围内。那么需要将其ToolTip显示在数据点的左边。
    border: '1px solid #fdd',
    padding: '2px',
    'background-color': '#fee',
    opacity: 0.80
    }).appendTo("body").fadeIn(200);
    }
    else {
    $('<div id="tooltip">' + contents + '</div>').css({
    position: 'absolute',
    display: 'none',
    top: y + 5,
    left: x - 5,
    border: '1px solid #fdd',
    padding: '2px',
    'background-color': '#fee',
    opacity: 0.80
    }).appendTo("body").fadeIn(200);
    }

    }

    var previousPoint = null;

    $(placeholder).bind("plothover", function (event, pos, item) {
    $("#x").text(pos.x.toFixed(2));
    $("#y").text(pos.y.toFixed(2));


    if (item) {
    if (previousPoint != item.dataIndex) {
    previousPoint = item.dataIndex;

    $("#tooltip").remove();
    var x = item.datapoint[0].toFixed(2),
    y = item.datapoint[1].toFixed(2);
    if (item.series.points.show == true) {
    showTooltip(item.pageX, item.pageY,
    tips[item.dataIndex]);
    }
    else {
    showTooltip(item.pageX, item.pageY,
    item.datapoint[1]);
    }

    }
    }
    else {
    $("#tooltip").remove();
    previousPoint = null;
    }


    });

    获取鼠标位置

    function mousePosition(ev) {
    var x, y;
    var ev = ev || window.event;
    return {
    x: ev.clientX + document.body.scrollLeft - document.body.clientLeft,
    y: ev.clientY + document.body.scrollTop - document.body.clientTop
    };
    }

    获取页面可视区高度以及宽度

    function getPageSize() {

    var winW, winH;
    if (window.innerHeight) {
    winW = window.innerWidth;
    winH = window.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
    winW = document.documentElement.clientWidth;
    winH = document.documentElement.clientHeight;
    } else if (document.body) { // other
    winW = document.body.clientWidth;
    winH = document.body.clientHeight;
    }
    return { WinW: winW, WinH: winH };
    }

    获取滚动条高度


    function getScrollTop() {
    var scrollTop = 0;
    if (document.documentElement && document.documentElement.scrollTop) {
    scrollTop = document.documentElement.scrollTop;
    }
    else if (document.body) {
    scrollTop = document.body.scrollTop;
    }
    return scrollTop;
    }

  • 相关阅读:
    sql 中 in 与 exist 的区别
    with as (cte common table expression) 公共表表达式
    配置连接数据库的方式
    Dispose 与 close 方法 的区别
    抽象类
    default
    什么叫无符号整型
    hdu 5187 zhx's contest [ 找规律 + 快速幂 + 快速乘法 || Java ]
    poj 2480 Longge's problem [ 欧拉函数 ]
    lightoj 1293
  • 原文地址:https://www.cnblogs.com/hexinxiaoyao/p/hx2.html
Copyright © 2011-2022 走看看