Используйте свойство AxisLabel объекта DataPoint. Один из способов сделать это будет примерно так:
аюсь отобразить данные в области диаграммы RangeBar (System.Windows.Forms.DataVisualization.Charting), и у меня возникают проблемы с группировкой данных, когда у меня есть текстовые значения для меток на вертикальной оси.
Вот соответствующий код:
var connectedTimeRangeSeries = theChart.Series.Add("ConnectedTimeRangeSeries");
var connectedTimeRangesChartArea = theChart.ChartAreas["PerItemConnectedChartArea"];
connectedTimeRangeSeries.ChartArea = connectedTimeRangesChartArea.Name;
connectedTimeRangeSeries.ChartType = SeriesChartType.RangeBar;
connectedTimeRangeSeries.XValueType = ChartValueType.Auto;
connectedTimeRangeSeries.YValueType = ChartValueType.Auto;
for (int i = 0; i < timeRanges.Count; i++)
{
string theLabel = timeRanges[i].ItemLabel;
connectedTimeRangeSeries.Points.AddXY(timeRanges[i].ItemId + 1, timeRanges[i].StartConnectionTime, timeRanges[i].StopConnectionTime);
}
timeRanges
список с элементами, имеющими эти типы элементов (доступ к которым осуществляется через открытые свойства с соответствующими заглавными именами):
private int itemId;
private string itemLabel;
private DateTime startConnectionTime;
private DateTime stopConnectionTime;
Когда я звонюDataSeries.Points.AddXY()
с типом X в качестве целого числа (напомним, X - вертикальная ось на шкале диапазона), он делает то, что я хочу. Временные диапазоны сгруппированы в соответствии с индексом на нижнем графике:
Однако, когда я изменяю, чтобы попытаться использовать текстовую метку, чтобы сгруппировать их, заменяяAddXY
с этим:
connectedTimeRangeSeries.Points.AddXY(theLabel, timeRanges[i].StartConnectionTime, timeRanges[i].StopConnectionTime);
данные больше не группируются:
Как будто у каждого своя корзина, и я просто хочу, чтобы они были объединены по меткам. (Каждый индекс имеет одну и только одну метку.)
Есть идеи? Спасибо!