2015-08-13 1 views
0

Это то, что я сделал до сих пор. Пожалуйста, ознакомьтесь с полным описанием, чтобы узнать мое требование.Как работать с System.Web.UI.DataVisualization.Charting

 System.Web.UI.DataVisualization.Charting.ChartArea chartArea1 = new System.Web.UI.DataVisualization.Charting.ChartArea(); 
     System.Web.UI.DataVisualization.Charting.Legend legend1 = new System.Web.UI.DataVisualization.Charting.Legend(); 
     System.Web.UI.DataVisualization.Charting.Series series1 = new System.Web.UI.DataVisualization.Charting.Series(); 
     System.Web.UI.DataVisualization.Charting.Series series2 = new System.Web.UI.DataVisualization.Charting.Series(); 
     System.Web.UI.DataVisualization.Charting.Chart chart1 = new System.Web.UI.DataVisualization.Charting.Chart(); 
     //((System.ComponentModel.ISupportInitialize)(chart1)).BeginInit(); 
     //this.SuspendLayout(); 
     // 
     // chart1 
     // 
     chartArea1.Name = "ChartArea1"; 
     chart1.ChartAreas.Add(chartArea1); 
     legend1.Name = "Legend1"; 
     chart1.Legends.Add(legend1); 
     //chart1.Location = new System.Drawing.Point(49, 62); 
     //chart1.Name = "chart1"; 
     series1.ChartArea = "ChartArea1"; 
     series1.ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.StackedBar; 
     series1.Legend = "Legend1"; 
     series1.Name = "Series2"; 
     series2.ChartArea = "ChartArea1"; 
     series2.ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.StackedBar; 
     series2.Legend = "Legend1"; 
     series2.Name = "Series3"; 
     chart1.Series.Add(series1); 
     chart1.Series.Add(series2); 
     //chart1.Size = new System.Drawing.Size(534, 300); 
     chart1.TabIndex = 0; 
     //chart1.Text = "chart1"; 

     chart1.Series["Series2"].Points.Add(new DataPoint(1, 1)); 
     chart1.Series["Series2"].Points.Add(new DataPoint(2, 4)); 
     chart1.Series["Series2"].Points.Add(new DataPoint(3, 5)); 
     chart1.Series["Series3"].Points.Add(new DataPoint(2, 3)); 

     chart1.Series["Series2"].IsValueShownAsLabel = true; 
     chart1.Series["Series3"].IsValueShownAsLabel = true; 

     using (MemoryStream ms = new MemoryStream()) 
     { 
      chart1.SaveImage(ms, ChartImageFormat.Png); 
      return File(ms.ToArray(), "image/png"); 
     } 

И это даст следующую схему.

enter image description here

Но что мне нужно, это блок-схема, как следующее с начальным и конечным значениями

enter image description here

Как я могу получить это?

UPDATE: данные я хочу, чтобы отобразить хранится в виде списка, который выглядит следующим образом

List<dummyGraph> objGraphList = new List<dummyGraph>(); 

     dummyGraph objDummyGraph = new dummyGraph(); 
     objDummyGraph.RiskCategories = "Compliance,Law,Legislation"; 
     objDummyGraph.HighImpactRisks = "4"; 
     objDummyGraph.MediumImpactRisks = "1"; 
     objDummyGraph.LowImpactRisks = "0"; 
     objDummyGraph.NoImpactRisks = "5"; 
     objDummyGraph.index = 1; 

     objGraphList.Add(objDummyGraph); 

     objDummyGraph = new dummyGraph(); 

     objDummyGraph.RiskCategories = "Construction"; 
     objDummyGraph.HighImpactRisks = "5"; 
     objDummyGraph.MediumImpactRisks = "1"; 
     objDummyGraph.LowImpactRisks = "4"; 
     objDummyGraph.NoImpactRisks = "0"; 
     objDummyGraph.index = 2; 

     objGraphList.Add(objDummyGraph); 
+0

Вы могли бы предоставить описание данных, которые вы пытаетесь отобразить? – Hughnited

ответ

2

Возможно тип SeriesChartType.RangeBar график будет лучшим вариантом, чем SeriesChartType.StackedBar

Heres ссылка: https://msdn.microsoft.com/en-us/library/vstudio/dd456745(v=vs.100).aspx

+0

Ok Hughnited, я поеду с этим. Но как я могу отображать начальное и конечное значение в этой панели диапазонов, любую идею? я видел одну характеристику, такую ​​как количество значений Y для каждой точки в этой ссылке. Но просто отдавая ему ценность, я не делаю то, что хочу. –

+0

Вы даете ему __two__ y-values! – TaW

+0

@TaW вы можете объяснить немного, теперь я использую serialInstance.Points.AddXY (xordinal, yplot1, yplot2); для установки значений y. Как ваш sugession, как я могу дать два значения Y? –