c # как сделать несколько областей диаграммы в столбце с автопрокруткой?

я новичок на этом форуме. я хочу сделать диаграмму с несколькими областями диаграммы, каждая область диаграммы должна быть внизу предыдущей, я помещаю свою диаграмму на панель и активирую автопрокрутку. но я видел, что максимальный размер Chart1.ChartAreas["ChartArea1" + i.ToString()].Position.Y равен 100. Мой вопрос: как сделать несколько областей диаграммы в столбце, каждая область диаграммы должна иметь высоту =50.

вот мой код:

        public List<double> lista = new List<double>();
        for (int i = 0; i < 5; i++)
        {
            Chart1.Series.Add("Series1" + i.ToString());
            Chart1.ChartAreas.Add("ChartArea1" + i.ToString());
            Chart1.Legends.Add("Legend1" + i.ToString());

            Chart1.Series[i].ChartArea = "ChartArea1" + i.ToString();
            Chart1.Series[i].ChartType = SeriesChartType.Spline;
            Chart1.Series[i].BorderWidth = 2;

            Chart1.ChartAreas["ChartArea1" + i.ToString()].AxisX.Title = "x";
            Chart1.ChartAreas["ChartArea1" + i.ToString()].AxisY.Title = "y";

            Chart1.ChartAreas["ChartArea1" + i.ToString()].Position.Auto = false; //customizare la posizione chartarea
            Chart1.ChartAreas["ChartArea1" + i.ToString()].Position.X = 0; //posizione x
            Chart1.ChartAreas["ChartArea1" + i.ToString()].Position.Y = 3 + 50 * i; //posizione y
            Chart1.ChartAreas["ChartArea1" + i.ToString()].Position.Height = 40; //altezza
            Chart1.ChartAreas["ChartArea1" + i.ToString()].Position.Width = 95; //larghezza

            lista.Clear();
            double numero;      
            for(int k = 0; k < 100; k++)
            {
                numero = Math.Cos(k) * Math.Sin(k);
                lista.Add(numero);
            }    

            foreach (var item in lista)
            {
                var index1 = Chart1.Series[i].Points.AddY(item);
            }
        }

хочу получить что-то как на картинке введите здесь описание изображенияспасибо за помощь


person ale    schedule 02.08.2017    source источник
comment
Обратите внимание, что позиции всегда указываются в процентах от окружающего элемента диаграммы. Таким образом, вы не можете сделать 4x50, а скорее 4x25 (или меньше, если вы хотите название диаграммы). Однако Chart не поддерживает AutoScroll. Однако вы можете сделать его большим и вложить в панель автопрокрутки.   -  person TaW    schedule 02.08.2017
comment
Вот кусок рабочего кода: chart9.Height = panel1.ClientSize.Height * 2; chart9.Width = panel1.ClientSize.Width ;...for (int i = 0; i < chart9.ChartAreas.Count; i++) { ChartArea ca = chart9.ChartAreas[i]; ca.BackColor = Color.FromArgb(i*55, i*44, rnd.Next(256)); ca.Position = new ElementPosition(0, i * 25, 90, 25); ca.InnerPlotPosition = new ElementPosition(10, 0, 90, 100);}   -  person TaW    schedule 02.08.2017
comment
Обратите внимание, что я также установил InnerPlotPosition, чтобы оси Y имели общее пространство для своих меток.   -  person TaW    schedule 02.08.2017
comment
Благодарность! также я нашел здесь другое решение: stackoverflow. com/questions/37567374/   -  person ale    schedule 06.12.2017