2

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

4

3 回答 3

2

如果您要的是,将SeriesChartType设置为 StackedColumn 应该会为您提供堆栈面积图。下面的代码示例来自这里

            //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;
于 2011-06-27T21:20:54.773 回答
1

要删除背景中的图表,请在 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;
于 2011-09-07T01:48:58.963 回答
0

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

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();
于 2014-12-01T11:56:45.857 回答