Мне было предложено извлечь скорость появления определенных параметров в разных местах за несколько лет. Теперь пользователь хочет выбрать каждый конкретный сайт и сравнить его с общими значениями. Он хочет что-то вроде следующей диаграммы, которую я создал с помощью Excel:
Excel Изображение локального и общего
В Excel, чтобы получить 2 метки оси уровня, я включил 2 столбца в набор ячеек, которые я выбрал (=Sheet2!$A$10:$B$19
).
В своем коде я объявил этот объект:
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 %";
К сожалению, это не то, что мне нужно.
Я ищу те кластерные столбцы (2 в год), которые есть в Excel. Моей первой мыслью было объявить _AYear
в виде массива для имитации 2 столбцов, которые я выбираю в Excel, но DataPointCollection.DataBind(IEnumerable, String, String, String)
не принимает массив.
Как я могу создать кластеризованную и сложенную гистограмму?