Поиск:

Ответ в темуСоздание новой темы Создание опроса
> График, график вручную 
V
    Опции темы
Дося
Дата 4.4.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Народ, как сделать график вручную, который бы брал значения из набора данных? smile
Мне надо, чтобы по оси Х были значения времени, а по оси Y - значения измерений. Подскажите, с чего начать. Я никак не могу додуматься... Что писать в DBChart1->AddSeries... ?
smile
PM MAIL   Вверх
Дося
Дата 4.4.2006, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Попробовал такой код:

Код

DBChart19->Series[0]->AddXY(2,Form1->Table3G1V->Value);


Как вместо двойки по оси Х дату отабразить? У меня дата берётся из ComboBox.
PM MAIL   Вверх
AntonChik
Дата 5.4.2006, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



в настройках оси Х ставится галочка ,что тип будет DateTime
ну а потом пишешь ...Series[0]->AddXY(Time(),y);
ну или если надо, то вместо Time() ставишь Date()...


--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
Дося
Дата 5.4.2006, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Хм...

А если чуть-чуть точнее?... Я пишу DBChart19->Series[0]->AddXY(Date(CBDataNuo->Text),6); и выкидывает ошибку... Никак не получается вывести дату на ось. В настройках оси Х поставил галочку, что будет Date Time.

А вообще большой будет код, если мне надо сделать, чтобы Х - это были значения дат из двух ComboBox (интервал задаётся с помощью ComboBox, например с 2006.01.01 до 2006.02.01), а Y - значения, соответствующие датам из набора данных? smile

Это сообщение отредактировал(а) Дося - 5.4.2006, 09:35
PM MAIL   Вверх
AntonChik
Дата 6.4.2006, 05:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



Date(CBDataNuo->Text) - это гон какой-то
я тебе писал подставлять Date() , то бишь текущую дату (или лучше Time() т.к. более наглядно будет для примера). проверь будет ли так работать...
потом попробуй подставлять StrToDate(CBDataNuo->Text);
но это если CBDataNuo->Text соответствует по записи типу TDateTime , т.е. - не помню как для даты-,а для времени должно быть в виде HH:MM:SS (ну для даты думаю что-то вроде YY:MM:DD)

--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
megabist
Дата 6.4.2006, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Mart Slaaf
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 3.4.2006
Где: Мск

Репутация: нет
Всего: 31



вопрос а как пстроить график по разбросу?
тоесть значения скачут и нужен усреднённый график?


--------------------
Don't panic!

Жди, и Фатум тебя приведёт...
PM MAIL ICQ Skype GTalk   Вверх
_hunter
Дата 6.4.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



посчитать средние значения и построить по ним график...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
AntonChik
Дата 7.4.2006, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



Цитата(megabist @ 6.4.2006, 15:38 Найти цитируемый пост)
вопрос а как пстроить график по разбросу?
тоесть значения скачут и нужен усреднённый график?


в Методах Анализа Данных и в комп.графике существует множество методов сглаживания... копай в эту сторону...

--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
Дося
Дата 13.4.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Цитата(AntonChik @ 6.4.2006, 05:00)
Date(CBDataNuo->Text) - это гон какой-то
я тебе писал подставлять Date() , то бишь текущую дату (или лучше Time() т.к. более наглядно будет для примера). проверь будет ли так работать...
потом попробуй подставлять StrToDate(CBDataNuo->Text);
но это если CBDataNuo->Text соответствует по записи типу TDateTime , т.е. - не помню как для даты-,а  для времени должно быть в виде HH:MM:SS (ну для даты думаю что-то вроде YY:MM:DD)

Не идёт... smile Блин, люди... Я с этим графиком уже 3 месяца ковыряюсь какой... И никак. Помогите... smile Вам 10-15 минут, и всё готово. Подскажите, плиз. Я даже не могу найти за деньги у себя в городе, кто бы сделал... Может, кто тут сделает? Переведу евро на счёт. smile
PM MAIL   Вверх
Ctrl_Alt_Del
Дата 13.4.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 11.3.2006
Где: Ставрополь

Репутация: 2
Всего: 2



Дося, выложи проект. Посмотрим чем можно помочь. smile

P.S. посмотри вложение, может поможет разобраться.

Это сообщение отредактировал(а) Ctrl_Alt_Del - 13.4.2006, 22:30

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  chart.zip 3,93 Kb
PM MAIL ICQ   Вверх
Дося
Дата 13.4.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Окей, сейчас выложу...

Алиас базы данных - dbVibrDataStore. Драйвер - STANDART. Проект ТУТЯ. Форма с графиком будет Unit13.cpp. Мне надо, чтобы по оси X откладывались даты из CBDataNuo и CBDataIki (по-русски, CBДатаС и СВДатаДо),т.е. интервал, а по Y - значения, соответствующие этим датам из таблицы Table3... Вот... smile

Спасибо огромное за ранее за помощь.

P.S.: Твой пример не смог скомпилировать - просит какие-то файлы...

Это сообщение отредактировал(а) Дося - 13.4.2006, 23:05
PM MAIL   Вверх
Дося
Дата 14.4.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Ну как? smile
PM MAIL   Вверх
Ctrl_Alt_Del
Дата 15.4.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 11.3.2006
Где: Ставрополь

Репутация: 2
Всего: 2



Дося, да что-то не очень. Трудновато разобраться с языком smile
Дата берется в поле data в lentMatavimai.db, а по оси Y значение какого поля?
PM MAIL ICQ   Вверх
Дося
Дата 16.4.2006, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Sorry, chto pishu latyn'ju - netu russkih bukv na klave. smile
Da, data beretsia iz polia Table3Data iz lentMatavimai.db. Po osi Y berutsia tak: naprimer, vybiraesh' iz ComboBox spiska (CBGuolis) podshipnik 1, iz ComboBox spiska (CBDataNuo) datu, v sledushem ComboBox (CBDataIki) druguju datu, i RadioButton RBV (eto napravlenie po-russki). smile Po osi Y dolzhny byt' znachenija Table3G1V (eto esli CBGuolis = 1, a RBV = V). Vot.
PM MAIL   Вверх
Ctrl_Alt_Del
Дата 16.4.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 11.3.2006
Где: Ставрополь

Репутация: 2
Всего: 2



Дося, посмотри вот этот код, сырой конечно, но хоть что-то  smile 
Вообще я не уверен, что я тебя правильно понял.  smile 
Код

void __fastcall TForm13::BNubreztiGClick(TObject *Sender)
{
     TDateTime t = TDateTime(CBDataNuo->Text);
     Form1->Table3->Locate("data",t,TLocateOptions() << loCaseInsensitive);
     AnsiString f = "G"+CBGuolis->Text;
     if(RBV->Checked) f+="V";
     else if(RBH->Checked) f+="H";
     else if(RBA->Checked) f+="A";
     else if(RBg->Checked) f+="g";
     double x = Form1->Table3->FieldByName(f)->AsFloat;
     DBChart19->Series[0]->Add(x,t.DateString(),clRed);
     t = TDateTime(CBDataIki->Text);
     Form1->Table3->Locate("data",t,TLocateOptions() << loCaseInsensitive);
     x = Form1->Table3->FieldByName(f)->AsFloat;
     DBChart19->Series[0]->Add(x,t.DateString(),clRed);
}

А вообще доработать нужно базу. А то многие поля пустые. 
PM MAIL ICQ   Вверх
Дося
Дата 16.4.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Спасибо, что пытаешься помочь. smile На днях постараюсь разобраться. А поля пустые, т.к. я не знаю данных. Я делаю дипломную. smile  
PM MAIL   Вверх
Дося
Дата 25.5.2006, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



user posted image

Народ, я вот делаю график и столкнулся вот с токой проблемой - график только чертит по двум значениям, пропускает промежуточные значения... В данном примере пропускает дату 2006.05.23. Вот код, которым пользуюсь:

Код

  TDateTime t=TDateTime(CBDataNuo->Text);
  Form1->Table3->Locate("Data",t,TLocateOptions()<<loCaseInsensitive);
  double nuo=Form1->Table3G1V->Value;
  DBChart19->Series[0]->Add(nuo,t.DateString(),clBlack);
  t=TDateTime(CBDataIki->Text);
  Form1->Table3->Locate("Data",t,TLocateOptions()<<loCaseInsensitive);
  double iki=Form1->Table3G1V->Value;
  DBChart19->Series[0]->Add(iki,t.DateString(),clBlack);


Помогите плиз доделать... Заранее пасиба!  

Это сообщение отредактировал(а) Дося - 25.5.2006, 22:29
PM MAIL   Вверх
Дося
Дата 26.5.2006, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Вот сделал немного по-другому - использую цикл, но мне теперь чертит все значения из таблицы. А как сделать, чтобы брал интервал значений, который я указываю с помощью ComboBox?

Вот код:
Код

DBChart19->Series[0]->Clear();
Form1->Table3->First();
while(!Form1->Table3->Eof)
{
  TDateTime t=Form1->Table3Data->Value;
  double y=Form1->Table3G1V->Value;
  DBChart19->Series[0]->Add(y,t.DateString(),clBlack);
  Form1->Table3->Next();
}
  

Это сообщение отредактировал(а) Дося - 26.5.2006, 12:12
PM MAIL   Вверх
Дося
Дата 26.5.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Сделал, чтобы чертил с даты, выбранной в первом ComboBox'e "Nuo". Но чертит с нее до самой последней даты, а мне надо до даты, указанной во втором ComboBox'e "Iki". Никак не могу составить цикл while (...). Помогите, срочно нужно, неужели никто не знает? smile 
Код:
Код

  DBChart19->Series[0]->Clear();
  TDateTime t1=CBDataNuo->Text;
  TDateTime t2=CBDataIki->Text;
  Form1->Table3->Locate("Data",t1,TLocateOptions()<<loCaseInsensitive);
  while(!Form1->Table3->Eof)
  {
    TDateTime t=Form1->Table3Data->Value;
    double y=Form1->Table3G1V->Value;
    DBChart19->Series[0]->Add(y,t.DateString(),clBlack);
    Form1->Table3->Next();
  }
 
PM MAIL   Вверх
Дося
Дата 26.5.2006, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Как никак разобрался. Если кому-то понадобится, вот код:
Код

    DBChart19->Series[0]->Clear();
    TDateTime t1=CBDataNuo->Text;
    TDateTime t2=CBDataIki->Text;
    Form1->Table3->Locate("Data",t1,TLocateOptions()<<loCaseInsensitive);
    while(Form1->Table3Data->Value<t2)
    {
      TDateTime t=Form1->Table3Data->Value;
      double y=Form1->Table3G1V->Value;
      DBChart19->Series[0]->Add(y,t.DateString(),clBlack);
      Form1->Table3->Prior();
    }
    Form1->Table3->Locate("Data",t2,TLocateOptions()<<loCaseInsensitive);
    double y=Form1->Table3G1V->Value;
    DBChart19->Series[0]->Add(y,t2.DateString(),clBlack);


Особое спасибо Ctrl_Alt_Del за помощь! Респект! smile  

Это сообщение отредактировал(а) Дося - 26.5.2006, 17:57
PM MAIL   Вверх
dilik
  Дата 26.5.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 9.5.2006
Где: CCCP

Репутация: нет
Всего: нет



Народ! У меня похожий вопрос, но значения я беру не из базы.

Как создать анимирующий график на подобии встроенного в Builder примера Teechart. (примерно C:\Program Files\Borland\CBuilder6\Examples\Teechart). Интересует именно  тип графика "Fast Line". 
       Задача стоит следующим образом - есть 8 датчиков. Для каждого необходимо задать число от 1 до 12. Можно вручную вводить, можно генерировать. А затем по этим данным строить график - по X - время (в секундах например), а по Y - те самые сгенерированные числа от 1 до 12. Как это осуществить с помощью Chart? В примере все генерируется динамически, мне там разобраться с трудом. smile


 ПОДСКАЖИТЕ ПОЖАЛУЙСТА!!!! smile   
PM WWW ICQ   Вверх
Дося
Дата 26.5.2006, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



А где сохраняются данные датчиков? 
PM MAIL   Вверх
dilik
Дата 27.5.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 9.5.2006
Где: CCCP

Репутация: нет
Всего: нет



Цитата(Дося @ 26.5.2006,  22:32)
А где сохраняются данные датчиков?

Сохраняется в базе smile 
Дело в том, что для того, чтобы брать данные из базы, необходимо их отсортировать или что там. В базе хранятся данные всех датчиков, каждый датчик отвечает за конкретный населенный пункт, а мне надо выводить график именно по каждому городу. Ну в принципе, отсортировать наверное не проблема. У меня тип string, т.е. к примеру находится запись "1 (Ялта)" и добавляется в базу нужная информация 
PM WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1090 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.