Как добавить текст поверх столбца с помощью ZedGraph?

Как я могу добавить текст поверх столбца на диаграмме. Это код, который я должен добавить бар:

var color = ColorTranslator.FromHtml(row.Colour);
var barItem = graphPane.AddBar(row.Propensity.ToString(), null, Ys.ToArray(), color);

Спасибо


person Lince81    schedule 29.07.2011    source источник
comment
См. связанные: stackoverflow.com/q/816256/161052, которые могут быть полезны.   -  person JYelton    schedule 30.07.2011


Ответы (3)


Вот краткий пример использования TextObj для простого добавления меток к каждому столбцу.

GraphPane myPane = zedGraphControl1.GraphPane;

double[] y = { 100, 50, 75, 125 };

BarItem myBar = myPane.AddBar("Data", null, y, Color.Red);
for (int i = 0; i < myBar.Points.Count; i++)
{
    TextObj barLabel = new TextObj(myBar.Points[i].Y.ToString(), myBar.Points[i].X, myBar.Points[i].Y + 5);
    barLabel.FontSpec.Border.IsVisible = false;
    myPane.GraphObjList.Add(barLabel);
}

myBar.Label.IsVisible = true;

zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();

Гистограмма с метками

Конечно, это просто использует значение данных в качестве метки. Если вы хотите использовать настраиваемые метки, вы можете создать массив строк или список и использовать их внутри цикла.

Вот несколько ссылок на ZedGraph:

person JYelton    schedule 01.08.2011

Вам нужно определить AlignH и AlignV в вашем текстовом объекте:

TextObj textLabel = new TextObj(value.ToString(), positionX, value, CoordType.AxisXYScale, AlignH.Center, AlignV.Top);

AlignV определяет положение вашего значения на панели.

person Masa    schedule 23.04.2014

Если вы хотите, чтобы текст метки соответствовал значению каждого столбца, вы можете сделать это с помощью одной строки кода:

BarItem.CreateBarLabels(graphPane, false, "F0");

Обратите внимание, что третий параметр имеет формат double.ToString. например "F0" = 12, "F2" = 12.34

Однако, если вам нужна гибкость, это решение не идеально. Это также не очень хорошо работает, если у вас есть столбчатая диаграмма с накоплением, потому что любые данные со значениями 0 заставят метки перекрываться и выглядеть ужасно.

person musefan    schedule 12.08.2013