1

This is what i did so far. Please go through the entire description to know my requirement

        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");
        }

And this will give the following chart.

enter image description here

But what i need is a chart like the following with Start and End values

enter image description here

How do i get it?

UPDATE: The data i wish to display is stored in a list which looks like following

   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);
Nithin Paul
  • 2,169
  • 3
  • 33
  • 55

1 Answers1

2

Perhaps the SeriesChartType.RangeBar chart type would be a better option than SeriesChartType.StackedBar

Heres a reference: https://msdn.microsoft.com/en-us/library/vstudio/dd456745(v=vs.100).aspx

Hugh
  • 450
  • 3
  • 13
  • Ok Hughnited i will go with that. But how can i display start and end value in that Range Bar, any idea? i saw one characteristics like Number of Y values per point in that link. But by simply giving value to it is not doing what i want. – Nithin Paul Aug 14 '15 at 05:07
  • You give it __two__ y-values! – TaW Aug 16 '15 at 20:16
  • @TaW can you explain little bit, now i am using seriesInstance.Points.AddXY(xordinal, yplot1, yplot2); to set y values. As per your sugession how can i give two Y values? – Nithin Paul Aug 17 '15 at 11:32
  • Um, you are doing that already, right? See [here](http://stackoverflow.com/questions/26339148/chart-does-not-read-correctly-seconds-from-datetime-variable-c-sharp/27061136?s=1|0.1700#27061136) for a few remarks and hints about rangbars/columns – TaW Aug 17 '15 at 12:06
  • Here's an additional [link](http://stackoverflow.com/questions/3458791/ms-chart-control-two-y-axis): – Hugh Aug 17 '15 at 12:14
  • @TaW Also i tried to add two y points using seriesInstance.Points.AddXY(xordinal, yplot1, yplot2) but it didnt show up start and end values at the end of my bars, can you paste a small piece of code here as comment? – Nithin Paul Aug 18 '15 at 05:12