На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Несколько вопрос про ЭУ Chart
    Всем хай! Сходу к делу!
    Разбираюсь поглубже с элементом отображения диаграмм Chart.
    Прикладываю картинку, на которой показаны некоторые настройки диаграммы. Все настройки прописаны кодом. В конструкторе ничего не настраиваю. Мне нужно ТОЛЬКО кодом.

    Прикреплённый файлПрикреплённый файлchart_x_2.png (32,25 Кбайт, скачиваний: 395)

    ВОПРОС №1: есть ли возможность вывести на область диаграммы ТАБЛИЦУ ДАННЫХ? Такая таблица автоматически строится в Excel. Должна же быть какая-то опция где-то. Не могу найти.
    ВОПРОС №2: не вижу опций, где можно задать размер, настройки шрифта, местоположение ЛЕГЕНДЫ. В подсказке есть "LegendText", "IsVisibleLegend", "LegendToolTip". Все! Первые две использую. Но где LegendFont и пр.?
    ВОПРОС №3:
    используя код:
    ExpandedWrap disabled
      this.chr.Series[0].Label = "Т";

    можно вывести подписи данных на графике (рядом с круглишком). Но, как видно, для всех точек графика (правда я их вывожу через 1, поэтому есть пропуски, опция "MarkerStep = 2") печатается ТУПО одно и то же, а именно буква 'T'. А хотелось бы, чтобы выводились координаты точек. В принципе, я вроде понимаю, как это можно закодить, но неужели нет опции, которая автоматом их подставляет. Вроде была. Не могу найти...
    ВОПРОС №4: не могу понять, как изменить ЦВЕТ самой линии графика (тип у меня СПЛАЙН). Да, есть выбора ПАЛИТРЫ (пастель, брайт, берри и пр.), но не вижу, как задать это программно.

    Спс. за любые наводки!
    Сообщение отредактировано: FasterHarder -
      Цитата
      ВОПРОС №1: есть ли возможность вывести на область диаграммы ТАБЛИЦУ ДАННЫХ? Такая таблица автоматически строится в Excel. Должна же быть какая-то опция где-то. Не могу найти.


      нет, реализуй отдельным DataGrid или ListVewie

      Цитата
      ВОПРОС №2: не вижу опций, где можно задать размер, настройки шрифта, местоположение ЛЕГЕНДЫ. В подсказке есть "LegendText", "IsVisibleLegend", "LegendToolTip". Все! Первые две использую. Но где LegendFont и пр.?


      ЛЕГЕНДА это отдельный объект и у него есть свои атрибуты, которые можно редактировать из кода

      Цитата
      ExpandedWrap disabled
        this.chr.Series[0].Label = "Т";

      можно вывести подписи данных на графике (рядом с круглишком). Но, как видно, для всех точек графика (правда я их вывожу через 1, поэтому есть пропуски, опция "MarkerStep = 2") печатается ТУПО одно и то же, а именно буква 'T'. А хотелось бы, чтобы выводились координаты точек. В принципе, я вроде понимаю, как это можно закодить, но неужели нет опции, которая автоматом их подставляет. Вроде была. Не могу найти...


      тут не понятно что вам надо, поясните другими словами

      Цитата
      ВОПРОС №4: не могу понять, как изменить ЦВЕТ самой линии графика (тип у меня СПЛАЙН). Да, есть выбора ПАЛИТРЫ (пастель, брайт, берри и пр.), но не вижу, как задать это программно.


      цвет графика задается при создании объекта Series
      ExpandedWrap disabled
        series.Color = Color.Red;


      Добавлено
      и еще в догонку, в студии есть оочень полезный инструмент, под названием ObjectBrowser. Он поможет вам разобраться с возможностями классов и элементов управления.
      Сообщение отредактировано: Pit-Bul -
        Цитата Pit-Bul @
        нет, реализуй отдельным DataGrid или ListVewie

        ясно. жаль! очень странно, что не встроили эту возможность по дефалту...

        Цитата Pit-Bul @

        ЛЕГЕНДА это отдельный объект и у него есть свои атрибуты, которые можно редактировать из кода

        с этим уже сам разобрался еще на той неделе

        Цитата Pit-Bul @
        тут не понятно что вам надо, поясните другими словами

        с этим уже сам ЧАСТИЧНО разобрался еще на той неделе

        Цитата Pit-Bul @
        цвет графика задается при создании объекта Series

        а вот с этим вроде ДО СИХ пор не разобрался. Не подскажешь конкретно свойство? вроде все там перепробовал, а цвет не менялся...

        Цитата Pit-Bul @
        и еще в догонку, в студии есть оочень полезный инструмент, под названием ObjectBrowser. Он поможет вам разобраться с возможностями классов и элементов управления.

        ага

        думал, что раздел ИЗДОХ окончательно!
        но все-таки еще тлеет еле-еле-еле-еле...
        Pit-Bul, спс и на этом)
          Цитата FasterHarder @
          Цитата Pit-Bul @ 22 апреля, 08:37
          цвет графика задается при создании объекта Series

          а вот с этим вроде ДО СИХ пор не разобрался. Не подскажешь конкретно свойство? вроде все там перепробовал, а цвет не менялся...



          я же показал в первом посте

          ExpandedWrap disabled
            series.Color = Color.Red;
            Цитата Pit-Bul @
            я же показал в первом посте

            ага, понял, правда чуток не так нужно, а с указанием индекса серии данных, типа:
            ExpandedWrap disabled
              this.Chart1.Series[0].Color = ...

            ну я понял, что ты упростил код, чтоб долгА не писать ;)

            кстати, еще такой прикол с этим цветом, что IntelleSence не встает на него)) приходится вручную пробивать слово "Color".

            Слушай, у меня еще вопросы появились, подсоби, если хочешь/можешь:
            1. не могу вывести подписи к сетке вторичной (MinorGrid). Не вижу в подсказке там ничего про Label

            вот нету ничего:
            ExpandedWrap disabled
                          // настройка вспомогательных линий сетки для оси Oy
                          this.chart1.ChartAreas[0].AxisY.MinorGrid.Enabled = true;
                          this.chart1.ChartAreas[0].AxisY.MinorGrid.Interval = 1;
                          this.chart1.ChartAreas[0].AxisY.MinorGrid.LineWidth = 1;
                          this.chart1.ChartAreas[0].AxisY.MinorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dot;
                          this.chart1.ChartAreas[0].AxisY.MinorGrid.LineColor = Color.Gray;
                          // подпись фамилий под каждым столбиком можно наклонить на любой заданный угол
                          // this.chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 90;


            т е к примеру строю график ф-ции f(x) = x^2 и основная сетка имеет шаг 10, а малая сетка шаг = 2. Выводятся лишь метки 0, 10, 20, а малых меток нет.

            2. я чегот не пойму, ведь можно выбрать разный тип диаграммы: столбиковая, японские свечи, лепестковая, пузырьковая и пр. пр. Свойства динамически меняются в подсказке? или общие на все случаи диаграмм? На некоторых типах диаграмм опции, которые влияли на др.тип не оказывают никакого влияния.
              Цитата FasterHarder @
              ну я понял, что ты упростил код, чтоб долгА не писать

              нет не понял :P

              ExpandedWrap disabled
                var series = new Series();
                series.Color = Color.Red;
                //тут все остальное настраиваешь
                this.Chart1.Series.Add(series);


              вот почему коротко написано :)

              Добавлено
              Цитата FasterHarder @
              1. не могу вывести подписи к сетке вторичной (MinorGrid). Не вижу в подсказке там ничего про Label


              Тут поковыряй

              Цитата FasterHarder @
              2. я чегот не пойму, ведь можно выбрать разный тип диаграммы: столбиковая, японские свечи, лепестковая, пузырьковая и пр. пр. Свойства динамически меняются в подсказке? или общие на все случаи диаграмм? На некоторых типах диаграмм опции, которые влияли на др.тип не оказывают никакого влияния.

              а что мешает тебе задавать свойства при смене диаграммы ?

              Цитата FasterHarder @
              На некоторых типах диаграмм опции, которые влияли на др.тип не оказывают никакого влияния.

              тут пример бы не помешал.
                Перевожу код настройки диаграммы с C# на С++.НЕТ и все идет хорошо, кроме этого Font:
                ExpandedWrap disabled
                  this.chart1.Titles[0].Font = new Font("Verdana", 18, FontStyle.Bold | FontStyle.Italic);


                заменяю на:
                ExpandedWrap disabled
                  this->chart1->Titles[0]->Font = new Font("Verdana", 18, FontStyle::Bold | FontStyle::Italic);


                и получаю сообщение:
                ExpandedWrap disabled
                  syntax error : identifier 'Font'


                ничего не понимаю :huh: , куда фонт подевался. И в интелисенс нет такой подсказки.

                В чем проблема может быть? (кроме того, что я слабак в С++ и C#, разумеется)

                Добавлено
                т е вот это прекрасно преобразовалось все на С++.НЕТ:
                ExpandedWrap disabled
                              this->chart1->Titles->Clear();
                              this->chart1->Titles->Add("Текст какой-то");
                              // this->chart1->Titles[0]->Font = new Font("Verdana", 18, FontStyle::Bold | FontStyle::Italic); // <<<--- not compile...
                              // настраиваем цвет шрифта заголовка
                              this->chart1->Titles[0]->ForeColor = Color::Blue;
                              // настраиваем цвет фона шрифта заголовка
                              this->chart1->Titles[0]->BackColor = Color::Beige;
                  Цитата Pit-Bul @
                  вот почему коротко написано

                  ну я понял уже, что обычно так и поступают, создают item, настраивают, а затем добавляют в коллекцию. ну в общем, да, наверное, так проще, меньше писать, хотя с такими подсказками как у С# прогать одно удовольствие))

                  Цитата Pit-Bul @
                  Тут поковыряй

                  покурил я тот пример, почти до бычка
                  вот, что там строят:
                  Прикреплённый файлПрикреплённый файл______________.png (28,64 Кбайт, скачиваний: 356)

                  но там нет того, что мне было очень нужно.
                  из этого примера можно посмотреть как настраивают праймеры и секондари оси, но про подписи миноров там нету) + bindXY прикольно привязывается (обычно по точкам добавлял)

                  кстати, подкинь еще что-нибудь покурить по ЧАРТАМ. Пример нашел хороший в принципе, много чего строится (правда все почти знакомо было). Нужны еще БОЛЬШЕ примеры, где 300-400 свойств затрагивается) было бы харашо...

                  в сети, лазаю, нахожу какие-то статьи про чарт, так там 5-6 свойств показывают и ВСЕ)) причем свойства типа Title, Name.

                  Я вот хочу разобраться с аннотациями и коллокейшенами, т к воотбще не понимаю, что они делают. Хорошо понимаешь их?
                  Сообщение отредактировано: FasterHarder -
                    FasterHarder
                    Есть пример с исходным кодом от Microsoft, демонстрирующий почти все возможности chart. Собирается без проблем (в vs2012 и выше).
                    Произвольные подписи пользователя к осям, подписи со значениями к каждой точке серии, установка шрифтов, цветов, скрытие меток, осей, заголовки чата, легенда, подписи к основным и дополнительным осям, аннотации и тд.

                    Samples Environments for Microsoft Chart Controls.zip
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0474 ]   [ 20 queries used ]   [ Generated: 19.03.24, 03:20 GMT ]