2010-10-10 4 views
3

Я пытаюсь создать гистограмму с ZedGraph.Пытается создать гистограмму с ZedGraph

Бары и данные хороши, единственное, что нужно, это мои бары, чтобы быть между тиками, а не непосредственно на тиках.

Образец данных:

1, 4 
2, 8 
3, 1 

означает, что у меня есть:

4 items that are >= 0 and < 1 
8 items that are >= 1 and < 2 
1 item that is >= 2 and < 3 

Так в настоящее время мои бары, конечно, появляются непосредственно на тиков (значения х) 1, 2 и 3.

Но хотелось бы посмотреть:

  • первый столбик между тиками 0 и 1,
  • второго бара между тиками 1 и 2 и
  • третий баром между тиками 2 и 3

Что такое свойством, чтобы настроить для того, для достижения этого? Я в настоящее время ищет в XAxis и XAxis.Scale, но я не нашел ничего еще ...

ответ

3

Вы, вероятно, не может сделать это с нормальным BarItem. Я использую объекты BoxObj для создания гистограммы.

Если histList является PointPairList, содержащий ваши пары значений гистограммы (точек останова и значений), вы можете использовать:

for (int i = 0; i < histList.Count - 1; i++) 
{ 
BoxObj box = new BoxObj(histList[i].X, histList[i].Y, histList[i + 1].X - histList[i].X, histList[i].Y); 
box.IsClippedToChartRect = true; 
box.Fill.Color = myColor; 
pane.GraphObjList.Add(box); 
} 

Использование BoxObj у вас есть полный контроль над где расположен бар и т.д. Более подробную информацию в documentation

РЕДАКТИРОВАТЬ
помнить, что при использовании BoxObj (или любой GraphObj в целом) Х и Y шкалы не собираюсь g, который будет установлен автоматически. Вам необходимо установить диапазоны шкалы вручную:

pane.XAxis.Scale.Min = ... 
pane.XAxis.Scale.Max = ... 
pane.YAxis.Scale.Min = ... 
pane.YAxis.Scale.Max = ... 
+0

хорошо выглядит, спасибо за ввод! – ibiza

+0

Привет, диаграмма начинает увеличиваться слишком много, и многие бары находятся за пределами видимой области (масштабирование мы можем видеть). Вы знали бы, как это исправить? – ibiza

+1

см. Мое редактирование. Надеюсь, это поможет – Gacek

Смежные вопросы