Контрольная ширина диаграммы со многими сериями

У меня есть эта диаграмма с некоторыми сериями в легенде, и эта диаграмма является стыковочной панелью для заполнения. Легенда имеет следующие свойства:

chart1.Legends.Add(seriesName);
chart1.Legends[0].Docking = Docking.Bottom;
chart1.Legends[0].TableStyle = LegendTableStyle.Wide;
chart1.Legends[0].BorderColor = Color.CornflowerBlue;
chart1.Legends[0].BorderDashStyle = ChartDashStyle.Dash;
chart1.Legends[0].BorderWidth = 1;

Диаграмма всего с несколькими сериями:

введите здесь описание изображения

С еще большим количеством серий, но с той же датой интервала у меня есть такой результат:

введите здесь описание изображения

Проблема не в масштабе данных, а в уменьшенном размере самой ChartArea .. - Как я могу это исправить?


person GoodFellas    schedule 28.03.2017    source источник
comment
Серии, очевидно, имеют x-значения, которые сильно различаются по масштабу. Скорее всего, все серии, которые смыты слева, относятся к одному дню, а может быть, даже часу .. - В таком случае может даже не быть ничего плохого и исправлять ..? Каковы значения x? Ответ на этот вопрос поможет выбрать лучший способ «исправить» или изменить.   -  person TaW    schedule 28.03.2017
comment
Как я могу это исправить? - вы можете начать с нормализации данных, чтобы все данные были в одинаковом масштабе. Это проблема не из-за количества серий, а из-за разного масштаба данных.   -  person Andy Korneyev    schedule 28.03.2017
comment
да TaW, начальное значение имеет ту же дату, но я изменил значения, чтобы продлить их до июля (17.07) с результатом, который я опубликую позже ... значение y - деньги (евро), а значения x - Дата.   -  person GoodFellas    schedule 28.03.2017
comment
Спасибо TaW за ваши ответы, я не уверен, что делать, чтобы удалить и переместить последний ответ .. Если я установил цвет фона ChartAreas на серебро, диаграмма будет половина панели ... нет другой диаграммы справа   -  person GoodFellas    schedule 28.03.2017


Ответы (1)


Причина в этой строке:

chart1.Legends.Add(seriesName);

Он добавляет по одному совершенно пустому Legend, скорее всего, для каждого из добавленных Series. Он находится в позиции по умолчанию, то есть справа. И если их у вас достаточно, они толкают ChartArea обратно влево ..

Просто удалите строку, так как все Series все равно будут добавлены к по умолчанию Legend. Это только тот по умолчанию Legend стиль и позиция ваших следующих строк, закрепленные снизу.

Чтобы продемонстрировать эффект, вы можете добавить LegendItem к каждому:

Legend l = chart1.Legends.Add(chart1.Legends.Count + ""));
l.CustomItems.Add(Color.HotPink, chart1.Legends.Count + " *");

Результат:

введите здесь описание изображения

Как видите, даже очень немногие лишние Legends сдвигают ChartArea путь влево. У вас пустые, поэтому они не воспринимаются как мусор, но все же ..

person TaW    schedule 28.03.2017
comment
Как вы правильно проанализировали, проблема заключается в добавлении легенд в foreach. Я решил с помощью настраиваемых легенд, инициализированных из foreach, установил свойства и добавил их в диаграмму в конце цикла foreach. еще раз спасибо за поддержку, привет из Италии - person GoodFellas; 29.03.2017
comment
Зачем вообще нужно добавлять дополнительную легенду ?? - person TaW; 29.03.2017
comment
В свойствах Legend элемента управления Chart я удаляю Legend1 в Collection, затем создаю ее во время выполнения ... вы видите результат здесь studiaziendali.it/20170329_114226.jpg Еще раз спасибо за проявленный интерес ... - person GoodFellas; 29.03.2017
comment
Я просто спрашивал почему вы делаете это вместо использования легенды по умолчанию, как вы это делаете в коде, который вы показываете ... О, ну ... - person TaW; 29.03.2017