Не удается увеличить MSchart при добавлении минимальной / максимальной оси Y - PullRequest
0 голосов
/ 20 ноября 2011

Всякий раз, когда я добавляю минимум / максимум к Yaxis (chart1.ChartAreas [0] .AxisY.Minimum & \ chart1.ChartAreas [0] .AxisY.Maximum) Я теряю возможность масштабирования графика.

Есть ли способ решить эту проблему?

Кто-нибудь знает, есть ли ограничения на масштабирование в сочетании с минимальными / максимальными значениями?

Ответы [ 3 ]

2 голосов
/ 19 февраля 2014

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

Проверьте значения Interval и IntervalType курсора области диаграммы. Масштабирование может быть включено, но ваш интервал достаточно велик, так что при минимальных / максимальных значениях у вас весь диапазон вашей диаграммы просто меньше, чем интервал, который вы можете выбрать.

В моем случае я использую DateTime для моего типа значения оси, и у меня с IntervalType 'Auto' я не мог увеличить ничего меньше, чем день - и моя диаграмма покрывала только 10 часов, и поэтому масштабирование было отключен. Я изменил IntervalType с «Авто» на «Секунды» (оставив «Интервал» на 1), и это позволяет мне увеличивать уровень детализации, который мне нужен.

0 голосов
/ 25 ноября 2011

Я не могу подтвердить проблему.
Если я установлю мин / макс, я все еще могу увеличить график, например ::1002

private void FillChart()
{
    var dt = new DataTable();
    dt.Columns.Add("X", typeof(double));
    dt.Columns.Add("Y", typeof(double));

    dt.Rows.Add(1, 3);
    dt.Rows.Add(2, 7);
    dt.Rows.Add(3, 2);
    dt.Rows.Add(4, 1);
    dt.Rows.Add(5, 5);
    dt.Rows.Add(6, 9);
    dt.Rows.Add(7, 0);

    this.chart1.Series.Clear();

    this.chart1.DataSource = dt;
    var series = this.chart1.Series.Add("MYSERIES");
    series.XValueMember = "X";
    series.YValueMembers = "Y";

    // set a custom minimum and maximum
    chart1.ChartAreas[0].AxisY.Minimum = -10;
    chart1.ChartAreas[0].AxisY.Maximum = 10;

    chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
    chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
    chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true; 
}

это прекрасно работает для меня.

Ты сделал что-то другое?

0 голосов
/ 21 ноября 2011

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

chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true;

Установка минимального / максимального значения на оси, по-видимому, действительно предотвращает выбранный пользователем масштаб. Я не уверен, пытаетесь ли вы ограничить масштабирование или предоставить начальную настройку масштабирования. Для более поздних, сделайте это вместо использования min / ax на оси:

chart1.ChartArea[0].AxisY.ScaleView.Zoom(min, max);
...