如何使用Web.UI.DataVisualization.Charting

时间:2019-04-17 16:10:20

标签: c# excel charts stackedbarseries

我被要求提取某些参数在过去几年中在不同地方的发生率。现在,用户希望选择每个特定站点,并将其与常规值进行比较。他想要的是类似于我使用Excel创建的以下图表:

excel Chart Image local vs general

在Excel中,为了获得2个水平轴标签,我在我选择的单元格集中(=Sheet2!$A$10:$B$19)中添加了2列。

在我的代码中,我声明了这个对象:

public partial class rptRateReportChartResult
{
    private string _AYear;
    private System.Nullable<decimal> _A;
    private System.Nullable<decimal> _B;
    private System.Nullable<decimal> _C;

    public rptRateReportChartResult()
    {
    }

    [Column(Storage = "_AYear", DbType = "NVarChar(12)")]
    public string AYear
    {
        get
        {
            return this._AYear;
        }
        set
        {
            if ((this._AYear != value))
            {
                this._AYear = value;
            }
        }
    }

    [Column(Storage = "_A", DbType = "Decimal(0,0)")]
    public System.Nullable<decimal> A
    {
        get
        {
            return this._A;
        }
        set
        {
            if ((this._A != value))
            {
                this._A = value;
            }
        }
    }

    (...)
}

当我绑定系列时,效果很好

Series series = new Series("SA");
series.ChartType = SeriesChartType.StackedColumn;
ActiveChart.Series.Add(series);
ActiveChart.Series["SA"].Points.DataBind(ChartResult, "Year", "A", "Label=A{0.00'%'}");
ActiveChart.Series["SA"].LegendText = "A %";

不幸的是,这不是我所需要的。

我正在寻找Excel中具有的这些聚集列(每年2个)。我的第一个想法是将_AYear声明为数组,以模拟我在Excel中选择的2列,但是DataPointCollection.DataBind(IEnumerable, String, String, String)不接受数组。

如何创建群集和堆叠的条形图?

0 个答案:

没有答案