title: Force a gap between points on the x axis (MS .Net Chart Controls, Column Chart)
body: <p>I have a column chart with multiple series each containing multiple points. Currently the columns all touch each other. I want to force a gap between each column. How can I achieve this?</p>
  
  <p>I found that applying a PointWidth (<code>Chart1.Series[seriesName]["PointWidth"] = (0.6).ToString();</code>) gives me a separation between the x value groups but not between each series point in an individual group (which I need). Using an empty spacer series as <a href="http://social.msdn.microsoft.com/Forums/fi-FI/MSWinWebChart/thread/38640bc4-0ea2-427a-b758-eaad8e44e321" rel="nofollow noreferrer">suggested elsewhere</a> does not solve the problem.</p>
  
  <p><img src="https://lh5.ggpht.com/_Psti3TsSy9w/S15SzuTcyUI/AAAAAAAAQY0/xrXJJbivytU/s800/ChartImg.png" alt="Current Chart"></p>
  
  <p>I am using .Net 4, VS 2010, Web Application. My chart code follows:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Drawing;
  using System.Linq;
  using System.Web.UI;
  using System.Web.UI.DataVisualization.Charting;
  
  namespace WebApplication1
  {
      public partial class _Default : Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
              Chart1.ChartAreas.Add("Default");
              Chart1.ChartAreas["Default"].BackColor = Color.White;
              Chart1.ChartAreas["Default"].BackSecondaryColor = Color.AliceBlue;
              Chart1.ChartAreas["Default"].BackGradientStyle = GradientStyle.TopBottom;
  
              Chart1.BackColor = Color.AliceBlue;
              Chart1.BackSecondaryColor = Color.White;
              Chart1.BackGradientStyle = GradientStyle.TopBottom;
              Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
              var colors = new List&lt;Color&gt;(GetSystemColors().Where(c=&gt;c.Name.StartsWith("Dark")));
              var rng = new Random();
              var start = rng.Next(0, colors.Count - 1);
              for (var c = start; c &lt; start + 6; c++)
              {
                  var color = colors[c % colors.Count];
                  Chart1.Series.Add(color.Name);
                  Chart1.Series[color.Name].BorderColor = color;
                  Chart1.Series[color.Name].BorderWidth = 1;
                  Chart1.Series[color.Name].Color = Color.FromArgb((int)(255 * .7), color);
                  Chart1.Series[color.Name].BackSecondaryColor = Color.White;
                  Chart1.Series[color.Name].BackGradientStyle = GradientStyle.TopBottom;
                  for (var year = DateTime.Now.AddYears(-5).Year; year &lt; DateTime.Now.Year; year++)
                      Chart1.Series[color.Name].Points.Add(new DataPoint(year, rng.Next(0, 20)));
  
                  Chart1.Series[color.Name]["PointWidth"] = (0.6).ToString();
                  //Chart1.Series.Add("Spacer:" + color.Name);
                  //Chart1.Series["Spacer:" + color.Name]["PointWidth"] = (0.6).ToString();
              }
              Chart1.Legends.Add("Default");
          }
  
          static IEnumerable&lt;Color&gt; GetSystemColors()
          {
              Type type = typeof(Color);
              return type.GetProperties().Where(info =&gt; info.PropertyType == type).Select(info =&gt; (Color)info.GetValue(null, null));
          }
      }
  }
  </code></pre>