Сложенные столбчатые диаграммы в ASP.NET 4.0 - PullRequest
2 голосов
/ 27 июня 2011

Может, кто-нибудь подскажет, как составить столбчатую диаграмму с накоплением с кодом?У меня нет набора данных для привязки, просто простые значения для отображения в столбчатой ​​диаграмме с накоплением.Я использую обычные элементы управления .NET Chart, предоставляемые Visual Studio 2010 в .NET Framework 40. Поэтому, пожалуйста, воздержитесь от разговоров о WebCharts или любых других платных диаграммах, таких как диаграммы Dundas или dotnetCharting и т.д ..

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

Установка 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;
1 голос
/ 07 сентября 2011

Чтобы удалить график в фоновом режиме, установите следующее для объекта 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;
0 голосов
/ 01 декабря 2014

После долгого поиска в столбчатой ​​диаграмме с накоплением в .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();
...