C # - форматирование столбца диаграммы - PullRequest
0 голосов
/ 28 февраля 2019

Добрый вечер всем.

Попытка отформатировать столбчатую диаграмму с некоторыми данными, и у меня возникла проблема.Все столбцы центрированы по их меткам.Я хочу, чтобы каждый столбец находился между метками.

Вот изображение

Код:

Random rnd = new Random();
Chart myChart = new Chart();
myChart.Parent = this;
myChart.Size = new System.Drawing.Size(300, 185);
myChart.Location = new Point(865, 56);
myChart.Titles.Add("Distribution of clients per time span");
ChartArea chArea = new ChartArea("clientsDistribution");
chArea.AxisX.Title = "Time span";
chArea.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.DecreaseFont;
chArea.AxisY.Title = "Count";
chArea.AxisY.LabelAutoFitMaxFontSize = 5;
myChart.ChartAreas.Add(chArea);
Series mySeriesOfPoint = new Series("timeSpans");
mySeriesOfPoint.ChartType = SeriesChartType.Column;
mySeriesOfPoint.ChartArea = "clientsDistribution";
for (int x = 0; x < 9; x++)
{
    mySeriesOfPoint.Points.AddXY(x + 9, countByTimeSpan[x]);
    mySeriesOfPoint.Points[x].Color = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
}
myChart.Series.Add(mySeriesOfPoint);
myChart.Series["timeSpans"]["PointWidth"] = "1";

1 Ответ

0 голосов
/ 28 февраля 2019

Мне кажется, что вы могли бы увеличить chArea.AxisX.IntervalOffset = 0.5;.Возможно, попробуйте установить его на 1.

ИЛИ

Вы можете попробовать использовать параметры выравнивания диаграммы:

AlignDataPointsByAxisLabel () Выравнивает точки данных вдоль оси X по меткам их осей.Применимо, когда несколько серий индексируются, а их значения X являются строками.

AlignDataPointsByAxisLabel (String) Выравнивает точки данных из разных серий вдоль оси X с использованием меток их осей.Указанные ряды на диаграмме выровнены с использованием возрастающего порядка сортировки.

AlignDataPointsByAxisLabel (PointSortOrder) Выравнивает точки данных по меткам их осей.Все ряды на диаграмме выровнены с использованием указанного порядка сортировки.

AlignDataPointsByAxisLabel (String, PointSortOrder) Выравнивает точки данных по меткам их осей.

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datavisualization.charting.chart.aligndatapointsbyaxislabel?view=netframework-4.7.2

...