【问题标题】:Stacked column charts in ASP.NET 4.0ASP.NET 4.0 中的堆积柱形图
【发布时间】:2011-06-27 18:51:26
【问题描述】:

谁能告诉我如何用代码制作堆积柱形图?我没有要绑定的数据集,只是在堆积柱形图中显示的普通值。 我在 .NET Framework 40 中使用 Visual Studio 2010 提供的普通 .NET Chart 控件。所以请不要谈论 WebCharts 或任何其他付费图表,如 Dundas 图表或 dotnetCharting 等。

【问题讨论】:

    标签: c# asp.net charts stacked


    【解决方案1】:

    SeriesChartType 设置为 StackedColumn 应该会为您提供堆栈区域图(如果这是您所要求的)。下面的代码示例来自here

                //Populate series data
                Random  random = new Random();
                for(int pointIndex = 0; pointIndex < 10; pointIndex++)
                {
                    Chart1.Series["Series1"].Points.AddY(Math.Round((double)random.Next(45, 95),0));
                    Chart1.Series["Series2"].Points.AddY(Math.Round((double)random.Next(5, 75),0));
                    Chart1.Series["Series3"].Points.AddY(Math.Round((double)random.Next(5, 95),0));
                    Chart1.Series["Series4"].Points.AddY(Math.Round((double)random.Next(35, 95),0));
                }   
    
        Chart1.Series["Series1"].ChartType = SeriesChartType.StackedColumn;
        Chart1.Series["Series2"].ChartType = SeriesChartType.StackedColumn;
        Chart1.Series["Series3"].ChartType = SeriesChartType.StackedColumn;
        Chart1.Series["Series4"].ChartType = SeriesChartType.StackedColumn;
    

    【讨论】:

    • 非常感谢 zero7。你能告诉我如何编辑颜色吗?以及如何在堆栈上显示值以及顶部的总数?
    • 您可以编辑系列颜色,例如:Chart1.Series["Series1"].Color = Color.Red;
    • 哦..我自己也得到了,第二个问题,我无法得到..关于在顶部显示总数?
    • Chart1.Series["Series1"].IsValueShownAsLabel = true; Chart1.Series["Series1"].Label = "#VALY";
    • 有什么办法可以摆脱后台的图表吗?谢谢!
    【解决方案2】:

    要移除背景中的图表,请在 ChartArea 对象上设置以下内容:

    ChartAreas[0].AxisX.Enabled = AxisEnabled.False
    ChartAreas[0].AxisY.Enabled = AxisEnabled.False
    

    这将禁用两个轴。

    如果您想保留 XAxis 及其标签,请移除网格线和 YAxis - 您可以使用以下代码:

    Chart1.ChartAreas[0].AxisX.LineDashStyle = ChartDashStyle.NotSet;
    Chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
    Chart1.ChartAreas[0].AxisX.MajorTickMark.Enabled = false;
    Chart1.ChartAreas[0].AxisX.MinorGrid.Enabled = false;
    Chart1.ChartAreas[0].AxisX.MinorTickMark.Enabled = false;
    Chart1.ChartAreas[0].AxisY.Enabled = AxisEnabled.False;
    

    【讨论】:

      【解决方案3】:

      在 .net 中使用 ASP 图表对堆积条形图进行长时间搜索后,我得到了更好的解决方案。

      MobileSalesChart.Series["Apple"].Points.Add(new DataPoint(i, ds.Tables[0].Rows[i]["Apple"].ToString().Trim()));
      MobileSalesChart.Series["Nokia"].Points.Add(new DataPoint(i, ds.Tables[0].Rows[i]["Nokia"].ToString().Trim()));
      MobileSalesChart.Series["Samsung"].Points.Add(new DataPoint(i, ds.Tables[0].Rows[i]["Samsung"].ToString().Trim()));
      MobileSalesChart.Series["Sony"].Points.Add(new DataPoint(i, ds.Tables[0].Rows[i]["Sony"].ToString().Trim()));
      MobileSalesChart.Series["Motorola"].Points.Add(new DataPoint(i, ds.Tables[0].Rows[i]["Motorola"].ToString().Trim()));
      MobileSalesChart.Series[0].Points[i].AxisLabel = ds.Tables[0].Rows[i]["Year"].ToString().Trim();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多