Автор Гілка: Графіки в консолі  (Прочитано 7090 раз)

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Графіки в консолі
« : 2009-07-26 09:42:54 »
        Доброго дня\вечора усім хто читає дане запитання.
   ;)
   Я в Лінуксі і у програмуванні не так давно тай задачі не такі й скадні доводилось виконувати,
та от потрібно в консолі виводити графік заданої функції, чи будь-якої залежності чисел.
Це повинна буть звичайна залежність y=y(x).  Власне
ніби дещо знаю, а от на рахунок координат та й кривих в консолі важко щось придумати :(.
Ви мабуть запитаєте: "Чому б не QT чи KDevelop?", а тому, що комп старий і під час виконання
такої задачі його вистачить лише на консоль та й ланух стоїть без графи.
 
   Допоможіть, будь ласка, як можна відобразити графіки функцій в консолі.
Буду вдячний за довільні варіанти відповідей чи посилання на статті чи форуми.
Мо задача і не складна і в мене мабуть депресняк :-[ ????.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Графіки в консолі
« Відповідей #1 : 2009-07-26 09:57:34 »
gnuplot: http://www.duke.edu/~hpgavin/gnuplot.html (не забудьте поміняти вивід на якийсь png і скористайтеся конвеєром у консольний переглядач зображень або знайдіть десь gnuplot, зібраний для framebuffer).

Якщо вас тягне на пригоди, ROOT: http://www.inp.nsk.su/~baldin/DataAnalysis/root.pdf
R: http://www.inp.nsk.su/~baldin/DataAnalysis/R/R-02-data.pdf
« Змінено: 2009-07-26 09:59:33 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Re: Графіки в консолі
« Відповідей #2 : 2009-07-26 11:43:53 »
    Про "GNUPlot" я знав, а от про "root" вперше читаю. Буду вивчати їхні мани і доки. Спасибі.
 А от чи можна в консолі так виводити графіки як у віндовскому С++ чи С, чи Pascal?
 Запитую тому, що програма повинна виводити криві в реальному часі.
Чи все робиться через прикладні програмки або модулі на зразок "GNUPlot" та інших?

І ще питання: "А що таке "фреймбуфер" "framebuffer"????"
« Змінено: 2009-07-26 11:44:26 від fedoraandriy »

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Графіки в консолі
« Відповідей #3 : 2009-07-26 11:54:06 »
Фреймбуфер - це метод виводити графіку за допомогою голого ядра лінукс. Також метод отримати консоль з нормального розміру символами на великому моніторі. З бібліотек, якщо знаєте C чи C++, можу порекомендувати DFB (http://directfb.org) чи SDL з відповідним графічним бек-ендом (принаймні з sdl-програмами при виводі через dfb у мене не було проблем, а з gtk+-програмами були, проте то було давно, може й gtk вже допиляли).

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Re: Графіки в консолі
« Відповідей #4 : 2009-07-26 11:58:40 »
  Велике спасибі!! :)

  Тепер буду читати, "що з чим їсти і як запивати".

Я не проти почитати ще більше пропозицій. Хоча пропозиція про "фреймбуфер" дуже цікава
 хоч я мало, що (чи краще взагалі нічого не) знаю.
« Змінено: 2009-07-26 12:01:34 від fedoraandriy »

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Графіки в консолі
« Відповідей #5 : 2009-07-26 12:06:08 »
   Про "GNUPlot" я знав, а от про "root" вперше читаю. Буду вивчати їхні мани і доки. Спасибі.
 А от чи можна в консолі так виводити графіки як у віндовскому С++ чи С, чи Pascal?
 Запитую тому, що програма повинна виводити криві в реальному часі.
Чи все робиться через прикладні програмки або модулі на зразок "GNUPlot" та інших?

І ще питання: "А що таке "фреймбуфер" "framebuffer"????"
1) Так. ROOT саме і призначено для обробки даних. У нього свій рушій. R призначено для обробки статистичних даних. у нього теж, здається власний рушій. Maxima і Octave виводять за допомогою gnuplot (до речі, він зовсім не GNU, gnu тут те саме, що і у антилопи ;)). Scilab+Scicos (теж система обробки у режимі реального часу, але з досить обмеженими можливостями) виводить графіки власним рушієм.
2) Вас цікавлять спеціальні модулі до мов програмування? То назвіть мови, які вас цікавлять. Здається, у всіх названих вами мовах є подібні можливості (Freepascal, той же ROOT, спеціальні бібліотеки C++ (MathGL, Qt-бібліотеки тощо), matplotlib у Python, google у поміч... ;)).
3) На відміну від DOS, консоль Linux — графічна за природою (можна запихати у неї шпалери, чи вивести якесь зображення). fb — це один зі способів вивести графіку у консоль (так, ні 2D, ні 3D прискорення не потрібне, але картинки дивитися можна). Посилання: http://www.linuxrsp.ru/artic/console-graphics.html (застаріло, але ідею зрозуміти можна).
« Змінено: 2009-07-26 13:52:55 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Re: Графіки в консолі
« Відповідей #6 : 2009-08-20 10:56:44 »
Привіт!
   gnuplot після виконання команди:
Цитата
gnuplot> splot sin(x*y/20)  
вибиває таке:
Цитата
Failed to initialize wxWidgets.

 Таке враження, що чого бракує.
 Попробував:
Цитата
aptitude install wxWidgets
після чого показало наступне:
Цитата
Читання переліків пакетів... Виконано
Побудова дерева залежностей                
Reading state information... Виконано              
Читання інформації про розширені стани      
Ініціалізація станів пакунків... Виконано    
Читання описів задач... Виконано                          
Не вдалося знайти пакунок, в назві якого міститься "wxWidgets", але
"wxWidgets" знайдено в описах більш ніж 40-ка пакунків.
Не вдалося знайти пакунок, в назві якого міститься "wxWidgets", але
"wxWidgets" знайдено в описах більш ніж 40-ка пакунків.
Жодного не буде встановлено, оновлено або видалено.
0 пакунків оновлено, 0 нових встановлено, 0 видалено і 440 не оновлено.
Потрібно отримати 0b архівів. Після розпакування 0b буде зайнято.
Читання переліків пакетів... Виконано
Побудова дерева залежностей                
Reading state information... Виконано              
Читання інформації про розширені стани      
Ініціалізація станів пакунків... Виконано    
Читання описів задач... Виконано

Що робити???

І ще питання. gnuplot та root (та й багато інших) виводять графіки в рисонках чи малюнках багатьох форматах наприклад: *.ps, *.png, *.jpg і.т.д. а от чи можна потоком (по точка) прийшла координата точки і її на моніторі поставити, звісно масштаб і тому подібне потрібно використати. Чи можевсе це мона зробити і gnuplot.
« Змінено: 2009-08-20 11:05:26 від fedoraandriy »

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Графіки в консолі
« Відповідей #7 : 2009-08-20 11:37:50 »
Що робити???

І ще питання. gnuplot та root (та й багато інших) виводять графіки в рисонках чи малюнках багатьох форматах наприклад: *.ps, *.png, *.jpg і.т.д. а от чи можна потоком (по точка) прийшла координата точки і її на моніторі поставити, звісно масштаб і тому подібне потрібно використати. Чи можевсе це мона зробити і gnuplot.
1) aptitude install wxGTK
2) У ROOT це буде об’єкт->Draw() після чого canvas->Update(), а у gnuplot мабуть повторний plot
« Змінено: 2009-08-20 11:38:25 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Re: Графіки в консолі
« Відповідей #8 : 2009-08-20 11:46:38 »
Цитата
# aptitude install wxGTK
Читання переліків пакетів... Виконано
Побудова дерева залежностей                
Reading state information... Виконано              
Читання інформації про розширені стани      
Ініціалізація станів пакунків... Виконано    
Читання описів задач... Виконано                          
Не вдалося знайти пакунок, в назві якого міститься "wxGTK".
Проте "wxGTK" знайдено в описах таких пакунків:
  python-wxgtk2.8-dbg libwxgtk2.6-dbg python-wxgtk2.6-dbg libwxgtk2.8-dbg python-wxgtk2.6 python-wxgtk2.8
Не вдалося знайти пакунок, в назві якого міститься "wxGTK".
Проте "wxGTK" знайдено в описах таких пакунків:
  python-wxgtk2.8-dbg libwxgtk2.6-dbg python-wxgtk2.6-dbg libwxgtk2.8-dbg python-wxgtk2.6 python-wxgtk2.8
Жодного не буде встановлено, оновлено або видалено.
0 пакунків оновлено, 0 нових встановлено, 0 видалено і 440 не оновлено.
Потрібно отримати 0b архівів. Після розпакування 0b буде зайнято.
Читання переліків пакетів... Виконано
Побудова дерева залежностей                
Reading state information... Виконано              
Читання інформації про розширені стани      
Ініціалізація станів пакунків... Виконано    
Читання описів задач... Виконано

Який порадите поставити.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Графіки в консолі
« Відповідей #9 : 2009-08-20 12:00:22 »
Ой, подивився на ваш псевдонім і подумав, що це Fedora...
В Debian/Ubuntu треба встановити libwxbase2.8
Якщо продовжуватиме лаятися, встановіть libwxgtk2.8-dev libwxgtk2.8-dbg (це вже максимум того, що треба).
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Re: Графіки в консолі
« Відповідей #10 : 2009-08-20 12:21:54 »
Спс, ставить.
 А псевдонім такий того, що я сиджу і на Fedori  і на Debian.

Мо Gnuplot, потрібно ще й відконфігурувати чи наставити, чи ще яка мара???
« Змінено: 2009-08-20 12:24:57 від fedoraandriy »

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Re: Графіки в консолі
« Відповідей #11 : 2009-08-20 14:01:58 »
Цитата
deneb@bask:~$ gnuplot

      G N U P L O T
      Version 4.2 patchlevel 2
      last modified 31 Aug 2007
      System: Linux 2.6.18-5-686

      Copyright (C) 1986 - 1993, 1998, 2004, 2007
      Thomas Williams, Colin Kelley and many others

      Type `help` to access the on-line reference manual.
      The gnuplot FAQ is available from http://www.gnuplot.info/faq/

      Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot>


Terminal type set to 'wxt'
gnuplot> wxt
         ^
         invalid command

gnuplot> plot sin(x)/x
Failed to initialize wxWidgets.

?????????????????????????

 :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[


Порадьте щось, плз.
« Змінено: 2009-08-20 14:17:31 від fedoraandriy »

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Графіки в консолі
« Відповідей #12 : 2009-08-20 16:26:28 »
Введіть у відповідь на запрошення:
gnuplot> set terminal x11Видно, wxWidgets-термінал поламано (у мене взагалі не зібрано).
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній fedoraandriy

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
Re: Графіки в консолі
« Відповідей #13 : 2009-08-20 17:22:47 »
повний порядок дій, що було виконано.
Я в ауті, та розумію прекрасно, що воно того варте, а мо він погано відконфігурувавсь????

Цитата

deneb@bask:~$ gnuplot

      G N U P L O T
      Version 4.2 patchlevel 2
      last modified 31 Aug 2007
      System: Linux 2.6.18-5-686

      Copyright (C) 1986 - 1993, 1998, 2004, 2007
      Thomas Williams, Colin Kelley and many others

      Type `help` to access the on-line reference manual.
      The gnuplot FAQ is available from http://www.gnuplot.info/faq/

      Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot>


Terminal type set to 'wxt'

gnuplot> set terminal x11  
Terminal type set to 'x11'
Options are '0'
gnuplot> set terminal X11  
Terminal type set to 'x11'
Options are '0'

gnuplot> plot sin(x)      
Failed to initialize wxWidgets.


А мо я нправильно даю команду. Це debian Lenny
« Змінено: 2009-08-20 17:24:12 від fedoraandriy »

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Графіки в консолі
« Відповідей #14 : 2009-08-20 17:53:41 »
Не знаю, що і робити. Треба почекати когось з Debian (у мене у Mandriva все дуже добре малює). У крайньому разі доведеться зібрати програму самому (це не складно).
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you