示例#1
0
        public void PieChartBind(DataTable dt, string wherestr, string field = "Year")
        {
            PieChartOption pieoption = new PieChartOption(new ChartTitle()
            {
                text = "推广统计", subtext = "按月统计"
            }, "");
            List <string>      legeds   = new List <string>();
            List <ChartSeries> dataList = new List <ChartSeries>();

            DataRow[]        drs   = dt.Select(field + "=" + wherestr);
            List <ChartData> datas = new List <ChartData>();

            foreach (DataRow dr in drs)
            {
                legeds.Add(dr["Month"].ToString());
                datas.Add(new ChartData()
                {
                    name = dr["Month"].ToString(), value = DataConvert.CLng(dr["PCount"])
                });
            }
            dataList.Add(new ChartSeries()
            {
                name = "", data_mod = datas.ToArray()
            });

            pieoption.AddData(new ChartLegend()
            {
                data = legeds.ToArray()
            }, dataList, "");
            piecode.Value = pieoption.ToString();
        }
示例#2
0
        //生成文章来源饼图
        public string CreateSumPie(string key, DataTable dt)
        {
            ChartTitle title = new ChartTitle()
            {
                text = key, subtext = "平台对比"
            };
            ChartOption option = new PieChartOption(title, "");
            ChartLegend legend = new ChartLegend();

            legend.data = "新闻,微博,微信".Split(',');
            ChartData[] data_mod = new ChartData[legend.data.Length];
            for (int i = 0; i < legend.data.Length; i++)
            {
                data_mod[i] = new ChartData()
                {
                    name = legend.data[i], value = dt.Select("Source='" + legend.data[i] + "'").Length
                };
            }
            List <ChartSeries> seriesList = new List <ChartSeries>()
            {
                new ChartSeries()
                {
                    name = "平台对比", data_mod = data_mod
                }
            };

            ((PieChartOption)option).AddData(legend, seriesList, "");
            return(option.ToString());
        }
示例#3
0
        //根据文章发布时间产生扩散速度图
        public string CreatePie(string key, DataTable dt)
        {
            ChartTitle title = new ChartTitle()
            {
                text = key, subtext = "扩散速度"
            };
            ChartOption option = new PieChartOption(title, "");
            ChartLegend legend = new ChartLegend();

            legend.data = "24小时内,72小时内,一周内,30天内,30天外".Split(',');
            ChartData[] data_mod = new ChartData[5];
            DateTime    time_24 = DateTime.Now.AddHours(-24), time_72 = DateTime.Now.AddHours(-72), time_d7 = DateTime.Now.AddDays(-7), time_d30 = DateTime.Now.AddMonths(-1);
            string      sql = "CDate>=#{0}# AND CDate<=#{1}#";

            data_mod[0] = (new ChartData()
            {
                name = legend.data[0], value = dt.Select("CDate>=#" + time_24 + "#").Length
            });
            data_mod[1] = (new ChartData()
            {
                name = legend.data[1], value = dt.Select(string.Format(sql, time_72, time_24)).Length
            });
            data_mod[2] = (new ChartData()
            {
                name = legend.data[2], value = dt.Select(string.Format(sql, time_d7, time_72)).Length
            });
            data_mod[3] = (new ChartData()
            {
                name = legend.data[3], value = dt.Select(string.Format(sql, time_d30, time_d7)).Length
            });
            data_mod[4] = (new ChartData()
            {
                name = legend.data[4], value = dt.Select("CDate<=#" + time_d30 + "#").Length
            });
            List <ChartSeries> seriesList = new List <ChartSeries>()
            {
                new ChartSeries()
                {
                    name     = "扩散速度",
                    data_mod = data_mod
                }
            };

            ((PieChartOption)option).AddData(legend, seriesList, "empy");
            return(option.ToString());
        }
示例#4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (function.isAjax())
            {
                string action = Request.Form["action"];
                string result = "";
                switch (action)
                {
                case "createimg":
                {
                    ChartTitle title = JsonConvert.DeserializeObject <ChartTitle>(Request.Form["title"], new JsonSerializerSettings()
                        {
                            NullValueHandling = NullValueHandling.Ignore
                        });                                                                                                                                                                    //数组中包含空数据等仍会造成问题
                    string      toolbox = Request.Form["toolbox"];
                    ChartOption option  = null;
                    switch (Type)
                    {
                        #region AJAX请求
                    case "bar":
                    case "line":
                    {
                        option = new BarChartOption(title, toolbox, Type);
                        ChartPackage packmod = JsonConvert.DeserializeObject <ChartPackage>(Request.Form["packmod"]);
                        ((BarChartOption)option).AddData(packmod.rowdata, packmod.series, Tag);
                    }
                    break;

                    case "pie":
                    {
                        option = new PieChartOption(title, toolbox);
                        ChartLegend  legend  = new ChartLegend();
                        ChartPackage packmod = JsonConvert.DeserializeObject <ChartPackage>(Request.Form["packmod"]);
                        legend.data = packmod.rowdata;
                        ((PieChartOption)option).AddData(legend, packmod.series, Tag);
                    }
                    break;

                    case "dash":
                    {
                        option = new DashOption(title, toolbox);
                        ChartPackage packmod = JsonConvert.DeserializeObject <ChartPackage>(Request.Form["packmod"]);
                        ((DashOption)option).AddData(packmod.series);
                    }
                    break;

                    case "funnel":
                    {
                        option = new FunnelChartOption(title, toolbox);
                        ChartPackage packmod = JsonConvert.DeserializeObject <ChartPackage>(Request.Form["packmod"]);
                        ChartLegend  legend  = new ChartLegend();
                        legend.data = packmod.rowdata;
                        ((FunnelChartOption)option).AddData(legend, packmod.series);
                    }
                    break;

                    case "scatter":
                    {
                        option = new ScatterChartOption(title, toolbox);
                        ChartPackage packmod = JsonConvert.DeserializeObject <ChartPackage>(Request.Form["packmod"]);
                        ChartLegend  legend  = new ChartLegend();
                        legend.data = packmod.rowdata;
                        ((ScatterChartOption)option).AddData(legend, packmod.series);
                    }
                    break;

                    case "circle":
                    {
                        option = new CircleChartOption(title, toolbox);
                        ChartPackage packmod = JsonConvert.DeserializeObject <ChartPackage>(Request.Form["packmod"]);
                        ChartLegend  legend  = new ChartLegend();
                        legend.data = packmod.rowdata;
                        ((CircleChartOption)option).AddData(legend, packmod.series);
                    }
                    break;

                    case "map":
                    {
                        option = new MapChartOption(title, toolbox);
                        ChartPackage packmod = JsonConvert.DeserializeObject <ChartPackage>(Request.Form["packmod"]);
                        ChartLegend  legend  = new ChartLegend();
                        legend.data = packmod.rowdata;
                        ((MapChartOption)option).AddData(legend, packmod.series);
                    }
                    break;
                        #endregion
                    }
                    option.calculable = bool.Parse(Request.Form["calculable"]);
                    result            = option.ToString();
                    break;
                }
                }
                Response.Clear();
                Response.Write(result); Response.Flush(); Response.End();
            }
            else if (!IsPostBack)
            {
                if (Mid > 0)
                {
                    chartMod             = chartBll.SelReturnModel(Mid);
                    ChartTitle_Hid.Value = chartMod.ChartTitle;
                    Cdate_Hid.Value      = chartMod.CDate.ToString();
                    ToolBox_Hid.Value    = chartMod.ToolBox;
                    Package_Hid.Value    = chartMod.Package;
                    code.Text            = chartMod.option;
                    function.Script(this, "LoadEditConfig();");
                }
                else//调用初始化方法
                {
                    function.Script(this, "LoadNewConfig();");
                }
                Call.SetBreadCrumb(Master, "<li><a href='" + customPath2 + "Main.aspx'>工作台</a></li><li><a href='Default.aspx'>智慧图表</a></li><li><a href='AddChart.aspx'>创建图表</a></li><li class='active'><a href='" + Request.RawUrl + "'>图表配置</a>[" + chartMod.GetTypeStr(Type) + "]</li>");
            }
        }