【问题标题】:Stacked grouped histogram HighCharts graphs with dynamic data using ASP.NET MVC3?使用 ASP.NET MVC3 与动态数据堆叠分组直方图 HighCharts 图?
【发布时间】:2012-02-10 11:37:12
【问题描述】:

我想使用 HighCharts 和 ASP.NET MVC3 制作堆叠和分组的直方图。 我在 HighCharts 的网站上找到了这个例子:http://www.highcharts.com/demo/column-stacked-and-grouped

我会在我的控制器中使用 JSonResult。 特别是,在上面的示例中,图形系列是在 javascript 中预定义的,而我会使用 JSON 动态创建它们。

【问题讨论】:

    标签: asp.net-mvc json dynamic highcharts series


    【解决方案1】:

    使用DonNet.Highcharts,您可以仅在服务器端轻松创建 Highcharts。有堆叠和分组列的示例。这是服务器端代码:

    Highcharts chart = new Highcharts("chart")
                .InitChart(new Chart { DefaultSeriesType = ChartTypes.Column })
                .SetTitle(new Title { Text = "Total fruit consumtion, grouped by gender" })
                .SetXAxis(new XAxis { Categories = new[] { "Apples", "Oranges", "Pears", "Grapes", "Bananas" } })
                .SetYAxis(new YAxis
                          {
                              AllowDecimals = false,
                              Min = 0,
                              Title = new YAxisTitle { Text = "Number of fruits" }
                          })
                .SetTooltip(new Tooltip { Formatter = "TooltipFormatter" })
                .SetPlotOptions(new PlotOptions { Column = new PlotOptionsColumn { Stacking = Stackings.Normal } })
                .SetSeries(new[]
                           {
                               new Series
                               {
                                   Name = "John",
                                   Data = new Data(new object[] { 5, 3, 4, 7, 2 }),
                                   Stack = "male"
                               },
                               new Series
                               {
                                   Name = "Joe",
                                   Data = new Data(new object[] { 3, 4, 4, 2, 5 }),
                                   Stack = "male"
                               },
                               new Series
                               {
                                   Name = "Jane",
                                   Data = new Data(new object[] { 2, 5, 6, 2, 1 }),
                                   Stack = "female"
                               },
                               new Series
                               {
                                   Name = "Janet",
                                   Data = new Data(new object[] { 3, 0, 4, 4, 3 }),
                                   Stack = "female"
                               }
                           });
    

    您可以随意传递数据。

    【讨论】:

    • 谢谢@vangi!这正是我所需要的!