如何在 asp.net 中显示多系列柱形图

How can i display multi series column chart in asp.net

在我的 web 应用程序中,我需要显示从数据绑定的柱形图数据 table 我在图表区域的 X 轴上有 3 列我需要显示 col1 一侧和第 2 列我还需要从数据 table 中为系列显示图例显示不同的颜色。

我也需要这样的东西我该怎么做请任何人都可以帮助我如何做到这一点。

谢谢

假设您的 DataTable 具有以下 column/types:

    Columns.Add("Month", typeof(DateTime));
    Columns.Add("Charges", typeof(double));
    Columns.Add("Payments", typeof(double));

ASPX:

    <asp:Chart ID="Chart1" runat="server" Height="400px" Width="600px">
        <ChartAreas>
            <asp:ChartArea Name="ChartArea1">
                <AxisY>
                    <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                    <LabelStyle Format="C2" />
                </AxisY>
                <AxisX>
                    <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                </AxisX>
            </asp:ChartArea>
        </ChartAreas>
        <Legends>
            <asp:Legend Name="Legend1">
            </asp:Legend>
        </Legends>
    </asp:Chart>

CS:

    protected void Page_Load(object sender, EventArgs e)
    {
        foreach (DataRow r in dt.Rows)
        {
            Series s = new Series(string.Format("{0} {1}", ((DateTime)r["Month"]).ToString("MMM"), ((DateTime)r["Month"]).Year));
            s.ChartType = SeriesChartType.Column;
            s.Points.AddXY("Charges", new object[] { r["Charges"] });
            s.Points.AddXY("Payments", new object[] { r["Payments"] });

            Chart1.Series.Add(s);
        }
    }


编辑: 假设您的 DataTable 具有以下列/类型:

    Columns.Add("Month", typeof(string));
    Columns.Add("Charges", typeof(double));
    Columns.Add("Payments", typeof(double));

    Columns.Add("Month");
    Columns.Add("Charges");
    Columns.Add("Payments");

那么您应该将代码更改为:

    protected void Page_Load(object sender, EventArgs e)
    {
        foreach (DataRow r in dt.Rows)
        {
            Series s = new Series((string)r["Month"]);
            s.ChartType = SeriesChartType.Column;
            s.Points.AddXY("Charges", new object[] { r["Charges"] });
            s.Points.AddXY("Payments", new object[] { r["Payments"] });

            Chart1.Series.Add(s);
        }
    }