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(); }
//生成文章来源饼图 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()); }
//根据文章发布时间产生扩散速度图 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()); }
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>"); } }