ASP.NET MVC 3.0 Chart Helper显示图例

时间:2011-05-17 04:00:40

标签: c# .net asp.net-mvc-3 mschart

有没有办法使用图表助手在图表上显示图例?

默认情况下它没有显示,没有可以说显示的属性,如果我在xml中指定了图例:

<Legends>
    <Legend _Template_=""All"" BackColor=""Black"" Docking=""Bottom"" Font=""Trebuchet MS, 8.25pt, style=Bold"" LegendStyle=""Row"" >
    </Legend>
  </Legends>  

它也无效。

图表助手public Chart AddLegend(string title = null, string name = null)中有方法;但是当我打电话给它时,我看不到图表上的图例,图表也没有显示出来。

Chart chart = new System.Web.Helpers.Chart(width: 120, height: 300, theme: chartStyle: ChartTheme.Green.ToString()) 
                .AddLegend("title", "name") // not existed legends, that's why error.
                .AddSeries(
                    chartType: "Column"
                    legend: "Rainfall"
                    xValue: new[] { "jan", "feb", "mar", "apr", "may" },
                    yValues: new[] { "20", "20", "40", "10", "10" });

。获取错误:Series 'Series1' uses non-existing legend name 'Rainfall'. Set Legend property value to Default

如果我将legend: "Rainfall"更改为legend: "Default"同样的错误。

我怎么能让这个传说名称存在?例如,如果直接使用System.Web.UI.DataVisualization.Charting,它将看起来像这样:

        chart.Legends.Add("Legend1");

        // show legend based on check box value
        chart.Legends["Legend1"].Enabled = true;

但如何用助手实现同样的目标?

1 个答案:

答案 0 :(得分:11)

您需要为每个系列命名,然后调用没有参数的AddLegend()来添加图例。

    var chart = new Chart(width: 600, height: 250)
        .AddSeries(
            chartType: "column",
            xValue: new [] { 2010, 2011, 2012 },
            yValues: new[] { 100, 125, 150 },
            name: "Forecasts")
        .AddSeries(
            chartType: "column",
            xValue: new[] { 2010, 2011, 2012 },
            yValues: new[] { 200, 225, 250 },
            name: "Actuals")
        .AddLegend();