Не работает для очень маленьких сумм (1-5 кликов). Я решил это так:
Dictionary<string, int> clicks = new Dictionary<string, int>();
for (int i = 0; i < 24; i++)
{
clicks.Add(string.Format("{0:00}:00", i), 0);
}
foreach (DateTime dateTime in rawClicks)
{
clicks[string.Format("{0:00}:00", dateTime.Hour)]++;
}
Chart chart = new Chart();
chart.ChartAreas.Add("Default");
Axis x = chart.ChartAreas["Default"].AxisX;
Axis y = chart.ChartAreas["Default"].AxisY;
x.Interval = 1;
x.IntervalType = DateTimeIntervalType.Auto;
chart.Series.Add("Default");
chart.Series["Default"]["PixelPointWidth"] = "15";
int maxNumberOfClicks = 0;
for (int i = 0; i < 24; i++)
{
string key = string.Format("{0:00}:00", i);
chart.Series["Default"].Points.AddXY(key, clicks[key]);
if (maxNumberOfClicks < clicks[key])
{
maxNumberOfClicks = clicks[key];
}
}
y.Interval = Math.Ceiling((double)maxNumberOfClicks / (double)7);
if (y.Interval == 0)
{
y.Interval = 1;
}