Highcharts结合Ajax完美实现时序图的展现(asp.net)版本(我是拿来做参考的)

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>HighCharts纯JS图表如何应对大数据量</title>
    <script type="text/javascript" src="/js/jquery.min.js"></script>
    <script type="text/javascript">
        var chart;
        var options;

        $(function () {
            $(document).ready(function () {
                Highcharts.setOptions({
                    global: {
                        useUTC: false
                    }
                });
                options = new Highcharts.Chart({
                    chart: {
                        renderTo: 'container',
                        type: 'spline',
                        marginRight: 10,
                        plotBackgroundColor: "rgba(255, 255, 255, .1)"
                    },
                    title: {
                        text: 'Highcharts 时序图'
                    },
                    subtitle: {
                        text: "(asp.net Ajax版本)",
                        y: 40
                    },
                    xAxis: {
                        type: 'datetime',
                        tickPixelInterval: 150 //横坐标刻度之间的距离
                    },
                    yAxis: {
                        title: {
                            text: 'IP',
                            rotation: 0
                        },
                        plotLines: [{
                            value: 0,
                            width: 1,
                            color: '#808080'
                        }]
                    },
                    tooltip: {
                        formatter: function () {
                            return '<b>' + this.series.name + '</b><br/>' +
                        Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
                        Highcharts.numberFormat(this.y, 2);
                        }
                    },
                    legend: {
                        enabled: true //允许显示图例
                    },
                    exporting: {
                        enabled: true //允许导出图表
                    },
                    credits: {
                        enabled: true,   //是否显示右下角Logo
                        text: "www.stepday.com",
                        href: "http://www.stepday.com/myblog/?highcharts",
                        style: {
                            cursor: 'pointer',
                            color: 'red',
                            fontSize: '12px'
                        },
                        position: {
                            align: 'right',
                            x: -10,
                            verticalAlign: 'bottom',
                            y: -10
                        }
                    },
                    series: [{
                        name: 'STEP DAY',
                        data: (function () {
                            var data = [],
                        time = (new Date()).getTime(),
                        i;

                            for (i = -19; i <= 0; i++) {
                                data.push({
                                    x: time + i * 1000,
                                    y: Math.random() * 100
                                });
                            }
                            return data;
                        })()
                    },
                    {
                        name: 'STEP DAY2',
                        data: (function () {
                            var data = [],
                        time = (new Date()).getTime(),
                        i;

                            for (i = -19; i <= 0; i++) {
                                data.push({
                                    x: time + i * 1000,
                                    y: Math.random() * 100
                                });
                            }
                            return data;
                        })()
                    },
                    {
                        name: 'STEP DAY3',
                        data: (function () {
                            var data = [],
                        time = (new Date()).getTime(),
                        i;

                            for (i = -19; i <= 0; i++) {
                                data.push({
                                    x: time + i * 1000,
                                    y: Math.random() * 100
                                });
                            }
                            return data;
                        })()
                    }]
                });
                //设置图表
                chart = new Highcharts.Chart(options);
            });
            //每间隔2秒钟请求一次数据
            setInterval(function () {
                Query();
            }, 2000);
        });

        //Ajax异步请求数据
        function Query() {
            $.ajax({
                type: 'POST',
                async: false,
                url: "/RealTimeData.aspx?" + "RequestTime=" + (new Date().getTime()).toString(),
                dataType: "json",
                success: function (msg) {
                    if (msg) {
                        //获取数据
                        var seriesList = options.series;
                        var x = new Date().getTime();
                        seriesList[0].addPoint([x, parseInt(msg.valone)], true, true);
                        seriesList[1].addPoint([x, parseInt(msg.valtwo)], true, true);
                        seriesList[2].addPoint([x, parseInt(msg.valthird)], true, true);
                    }
                },
                error: function (errorMsg) {
                    alert(errorMsg.toString());
                }
            });
        }        
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <script type="text/javascript" language="javascript" src="/js/highcharts.js"></script>
    <script type="text/javascript" language="javascript" src="/js/exporting.js"></script>
    <div id="container"  style="min-width: 400px;  width: 600px; height: 400px; margin: 0 auto">
    </div>
    <div style="width: 600px; text-align:left; padding-top:5px; padding-left:300px;">
        感谢您对STEP DAY的屌丝<a href="http://www.stepday.com/myblog/?highcharts" target="_blank">highcharts</a>一贯的支持
        <br />
        请多访问我的博客:http://www.stepday.com/myblog/?highcharts
    </div>
    </form>
</body>
</html>

asp代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Xcrs.PCL.Utility;

namespace Demo
{
    public partial class RealTimeData : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //返回格式:{曲线1的值:12,曲线2的值:34,曲线3的值:334}
            var rel = new {
                valone = GetFirst(),
                valtwo = GetSencond(),
                valthird = GetThird()
            };
            Response.Write(rel.ToJson());
            Response.End();
        }
        /// <summary>
        /// 获取第一个图例的随机数
        /// </summary>
        /// <returns></returns>
        protected string GetFirst()
        {
            string val = "50";
            Random randomObj = new Random();
            val = randomObj.Next(20, 200).ToString();
            return val;
        }
        /// <summary>
        /// 获取第二个图例的随机数
        /// </summary>
        /// <returns></returns>
        protected string GetSencond()
        {
            string val = "200";
            Random randomObj = new Random();
            val = randomObj.Next(200, 900).ToString();
            return val;
        }
        /// <summary>
        /// 获取第三个图例的随机数
        /// </summary>
        /// <returns></returns>
        protected string GetThird()
        {
            string val = "500";
            Random randomObj = new Random();
            val = randomObj.Next(300, 800).ToString();
            return val;
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Highcharts可以通过使用“sankey”和“dependencywheel”模块来实现组织架构图。下面是一些示例代码和说明来帮助你开始: 1. Sankey图: ```javascript Highcharts.chart('container', { title: { text: 'Employee Flow' }, series: [{ type: 'sankey', keys: ['from', 'to', 'weight'], data: [ ['John', 'Jane', 5], ['John', 'Joe', 3], ['Jane', 'Joe', 2], ['John', 'Fred', 2], ['Jane', 'Fred', 4], ['Joe', 'Fred', 3] ], nodes: [{ id: 'John' }, { id: 'Jane' }, { id: 'Joe' }, { id: 'Fred' }], links: [{ source: 'John', target: 'Jane', value: 5 }, { source: 'John', target: 'Joe', value: 3 }, { source: 'Jane', target: 'Joe', value: 2 }, { source: 'John', target: 'Fred', value: 2 }, { source: 'Jane', target: 'Fred', value: 4 }, { source: 'Joe', target: 'Fred', value: 3 }] }] }); ``` 在上面的代码中,我们使用了“sankey”类型的系列,指定了“from”,“to”和“weight”键来表示数据。我们还为每个节点定义了一个“id”,并使用“links”数组来指定节点之间的关系。 2. Dependency Wheel图: ```javascript Highcharts.chart('container', { chart: { type: 'dependencywheel' }, title: { text: 'Employee Skills' }, series: [{ name: 'Skills', keys: ['from', 'to', 'weight'], data: [ ['John', 'HTML', 4], ['John', 'CSS', 3], ['John', 'JavaScript', 5], ['Jane', 'HTML', 5], ['Jane', 'CSS', 4], ['Jane', 'JavaScript', 2], ['Joe', 'HTML', 2], ['Joe', 'CSS', 3], ['Joe', 'JavaScript', 3] ], dataLabels: { color: '#333', textPath: { enabled: true, attributes: { dy: 5 } }, distance: 10 }, levels: [{ level: 1, color: 'silver', borderWidth: 2 }, { level: 2, colorByPoint: true, dataLabels: { style: { textShadow: false } } }], colors: ['#7cb5ec', '#434348', '#90ed7d', '#f7a35c', '#8085e9', '#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1'], borderColor: '#999', borderWidth: 1 }] }); ``` 在上面的代码中,我们使用了“dependencywheel”类型的图表,指定了“from”,“to”和“weight”键来表示技能。我们还为每个技能定义了一个节点,并使用“dataLabels”属性来设置节点标签的样式和位置。我们还定义了两个级别,第一个级别的颜色为银色,第二个级别的颜色根据数据点的值自动设置。最后,我们使用“colors”属性来设置数据点的颜色,使用“borderColor”和“borderWidth”属性来设置边框的样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值