C# ASP.NET堆叠柱形图-轴故障

C# ASP.NET堆叠柱形图-轴故障,c#,asp.net,.net,vb.net,charts,C#,Asp.net,.net,Vb.net,Charts,我正在构建Asp.net堆叠柱形图 下面是它的外观: 下面是它的外观: 忽略图表上的数字,但看看X轴——当它们没有出现在数据中时,为什么它会给我11481153、1163 以下是我的数据: 代码如下: Dim chart As New Chart chart.ID = "Chart1" Dim chartareas As New ChartArea chart.ChartAreas.Add(c

我正在构建Asp.net堆叠柱形图

下面是它的外观:

下面是它的外观:

忽略图表上的数字,但看看X轴——当它们没有出现在数据中时,为什么它会给我11481153、1163

以下是我的数据:

代码如下:

   Dim chart As New Chart
                chart.ID = "Chart1"

                Dim chartareas As New ChartArea
                chart.ChartAreas.Add(chartareas)

      chart.DataBindCrossTable(DtFinalRecords.DefaultView, "OutcomeScore", "TermID", "RecordsPerGroup", "Label=RecordsPerGroup")




                chart.ChartAreas(0).AxisX.MajorGrid.Enabled = False
                chart.ChartAreas(0).AxisY.MajorGrid.Enabled = False


                For Each cs As Series In chart.Series
                    cs.ChartType = SeriesChartType.StackedColumn
                Next

                pnlcharts.Controls.Add(chart)
任何帮助都将不胜感激。谢谢大家!

DataBindCrossTable尽其所能,只需您进行最少的编码工作。但是如果您对默认行为不满意,那么您必须显式地对其进行自定义。在特定情况下,您希望为数据点指定自定义标签:

protected void Page_Load(object sender, EventArgs e)
{
    Chart1.Palette = ChartColorPalette.None;
    Chart1.PaletteCustomColors = new Color[] { ColorTranslator.FromHtml("#DF5B59"), ColorTranslator.FromHtml("#E0D773 "), ColorTranslator.FromHtml("#8AAC53"), ColorTranslator.FromHtml("#6A843F") };

    Chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
    Chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
    Chart1.ChartAreas[0].AxisX.Interval = 1;

    var rows = from row in dt.AsEnumerable() select row.Field<int>("OutcomeScore");

    Chart1.Series.Clear();

    foreach (int i in rows.Distinct())
        Chart1.Series.Add(new Series { Name = i.ToString(), ChartType = SeriesChartType.StackedColumn });

    foreach (DataRow dr in dt.Rows)
    {
        DataPoint dp = new DataPoint();
        dp.AxisLabel = dr["TermID"].ToString();
        dp.Label = dr["RecordsPerGroup"].ToString();
        dp.XValue = (int)dr["TermID"];
        dp.YValues[0] = (int)dr["RecordsPerGroup"];

        string name = dr["OutcomeScore"].ToString();
        Chart1.Series[name].Points.Add(dp);
    }
}

你能接受C答案吗?我不是一个真正的VB人…:太感谢你了!!这起作用了。我也投了赞成票!关于如何在堆叠条形图/柱形图上添加标记或突出显示特定数据点,有什么想法吗?这是我对这些图表的最后一个问题,我会解决的-