title: How to create dot chart, line chart in excel using c#?
body: <p>I'm use these namespaces:  <code>Excel = Microsoft.Office.Interop.Excel;</code> and <code>Microsoft.Office.Tools.Excel;</code></p>
  
  <p>I need to create a line chart with many short lines, which all will be parallel to the <em>x axis</em>.</p>
  
  <p>I already have written all needed points, which should be connected with line.</p>
  
  <p><img src="https://i.stack.imgur.com/ZOlXM.jpg" alt="enter image description here"></p>
  
  <p>y axis values for the several type of lines are the same, not they aren't numbers, they are a sort of name. Eventually this should looks this way:<img src="https://i.stack.imgur.com/MhSql.jpg" alt="enter image description here"></p>
  
  <p>I tried to do this in my way, but faced some problems <code>seriesCollection</code> doesn`t work as should, he draws 3 lines, but I can see only last one, 2 previous line become same dot. Here is the code: </p>
  
  <pre><code>        Excel.Workbook xlWorkBook;
          Excel.Worksheet xlWorkSheet;
          object misValue = System.Reflection.Missing.Value;
          Excel._Application xlApp = new Excel.Application();
          xlWorkBook = xlApp.Workbooks.Add(misValue);
          xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
  
          //add data 
          xlWorkSheet.Cells[1, 1] = 13;
          xlWorkSheet.Cells[1, 2] = 27;
          xlWorkSheet.Cells[1, 3] = 22;
          xlWorkSheet.Cells[1, 4] = 22;
  
          xlWorkSheet.Cells[2, 1] = 42    ;
          xlWorkSheet.Cells[2, 2] = 35;
          xlWorkSheet.Cells[2, 3] = 22;
          xlWorkSheet.Cells[2, 4] = 22;
  
          xlWorkSheet.Cells[3, 1] = 1;
          xlWorkSheet.Cells[3, 2] = 10;
          xlWorkSheet.Cells[3, 3] = 4;
          xlWorkSheet.Cells[3, 4] = 4;
  
  
          Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
          Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250);
          Excel.Chart chartPage = myChart.Chart;
          myChart.Select();
  
          chartPage.ChartType = Excel.XlChartType.xlXYScatterLines;
          Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
          Excel.SeriesCollection seriesCollection = chartPage.SeriesCollection();
  
          Excel.Series series1 = seriesCollection.NewSeries();
          series1.XValues = xlWorkSheet.get_Range("A1", "B1"); ;
          series1.Values = xlWorkSheet.get_Range("C1", "D1");
  
          Excel.Series series2 = seriesCollection.NewSeries();
          series2.XValues = xlWorkSheet.get_Range("A2", "B2"); ;
          series2.Values = xlWorkSheet.get_Range("C2", "D2");
  
          Excel.Series series3 = seriesCollection.NewSeries();
          series3.XValues = xlWorkSheet.get_Range("A3", "B3"); ;
          series3.Values = xlWorkSheet.get_Range("C3", "D3"); 
  </code></pre>
  
  <p>Don't know how to solve this problem. I think <em>y-axis</em> can't be a text, only numbers. Each line should be another <em>series</em>, I guess.</p>
  
  <p>P.S. Numbers can be represented in any required ways to simplify the work.</p>
  
  <p><strong>UPD:</strong> This is how I created this dot chart, I have recorded macros</p>
  
  <pre><code>Sub Dot_chart()
  '
  '
  '
  
  '
      ActiveSheet.Shapes.AddChart2(240, xlXYScatterLines).Select
      ActiveWindow.SmallScroll Down:=6
      ActiveSheet.Shapes("Chart 2").IncrementLeft 120.8823622047
      ActiveSheet.Shapes("Chart 2").IncrementTop 132.3529133858
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.FullSeriesCollection(1).Name = "=List1!$B$23"
      ActiveChart.FullSeriesCollection(1).XValues = "=List1!$D$22:$D$23"
      ActiveChart.FullSeriesCollection(1).Values = "=List1!$D$24:$D$25"
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.FullSeriesCollection(2).Name = "=List1!$B$23"
      ActiveChart.FullSeriesCollection(2).XValues = "=List1!$E$22:$E$23"
      ActiveChart.FullSeriesCollection(2).Values = "=List1!$E$24:$E$25"
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.FullSeriesCollection(3).Name = "=List1!$B$28"
      ActiveChart.FullSeriesCollection(3).XValues = "=List1!$D$27:$D$28"
      ActiveChart.FullSeriesCollection(3).Values = "=List1!$D$29:$D$30"
  End Sub
  </code></pre>
  
  <p>List1 sheet`s name.</p>