多系列柱形图

时间:2020-08-29 19:20:41

标签: c# asp.net-charts column-chart

这是我的SQL查询结果

enter image description here

我试图通过按房间所属酒店的房间分组来构建C#Web表单的柱形图,如下图所示

enter image description here

以上查询结果存储在DataTable dt 中。下面是其余代码

List<string> rooms = (from p in dt.AsEnumerable() select p.Field<string>("Room")).Distinct().ToList();

string[] x = new string[dt.Rows.Count];
double[] y = new double[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
    string room = dt.Rows[i][1].ToString();

    //Get the Country for each Room.
   x[i] = dt.AsEnumerable().
               Where(row => row.Field<string>("Room") == room.ToString()).
           Select(row => row.Field<string>("Country")).FirstOrDefault();


    //Get the Busy % for each Room.
    y[i] = dt.AsEnumerable().
                Where(row => row.Field<string>("Room") == room.ToString())
                  .Select(m => m.Field<double>("Busy")).FirstOrDefault();

Chart1.Series.Add(new System.Web.UI.DataVisualization.Charting.Series(room));
Chart1.Series[room].IsValueShownAsLabel = true;
Chart1.Series[room].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Column;
Chart1.Series[room].Points.DataBindXY(x, y);
Array.Clear(x, 0, x.Length);
Array.Clear(y, 0, y.Length);
}
Chart1.Legends[0].Enabled = true;

编译后,我可以看到下图。我如何将房间系列归为同一家酒店。我们对此表示任何帮助。

enter image description here

更新:感谢TAW对原始帖子的帮助。我现在看到系列对齐问题。数据表现在具有4列酒店,房间,利用率,ID。属于同一酒店的房间将具有相同的ID,这就是我将X轴上的房间按ID分组的方式。之后,我将ID值替换回酒店名称作为X轴标签。但是,每次将新系列添加到图表时,具有不同值的系列都将转换为+1或-1(用于对齐的逻辑表示)。 enter image description here

0 个答案:

没有答案
相关问题