LINUX.ORG.RU

[python]Нужна легковесная библиотека для отрисовки графиков

 


0

1

Для текущего проекта уже поднимал тему. Думал с графиками будет все просто, но не тут то было. Смотрел SciPy и matplotlib - не подходят, так как тяжелые. Есть в scipy модуль pylab - можно ли его как нибудь выдернуть оттуда и использовать как самостоятельный ? Если есть ссылки на скачивание - в студию, я не нашел. Ну и собственно сабж. Нужно всего то будет нарисовать график по высчитанным точкам, тратить на это 30-50 Мб не хочется.



Последнее исправление: markontheboard (всего исправлений: 1)

Если ты моделируешь что-то, то numpy лишним не будет. Вариант gnuplot + gnuplot.py тоже рабочий, но в gnuplot медленные 3D-графики.

tailgunner ★★★★★
()

Да не парься

установи matplotlib. Легче всё-равно ничего не найдёшь.

yvv ★★☆
()
Ответ на: комментарий от tailgunner

>Если ты моделируешь что-то, то numpy лишним не будет. Вариант gnuplot + gnuplot.py тоже рабочий, но в gnuplot медленные 3D-графики.

Да, numpy уже есть. А от системы посторения графиков нужна только генерация картинок соотв. графиков, причем не самых сложных, так что скорость не критична.

Думаю svgplotlib вполне должна подойти, она достаточно легковесная и есть бинарники для венды (проект делаю дома, но для NT-машин). Прийду вечером, попробую поставлю/поюзаю.

markontheboard
() автор топика
Ответ на: комментарий от markontheboard

>>Если ты моделируешь что-то, то numpy лишним не будет. Вариант gnuplot + gnuplot.py тоже рабочий, но в gnuplot медленные 3D-графики.

Да, numpy уже есть. А от системы посторения графиков нужна только генерация картинок соотв. графиков

Насколько я понял, svgplotlib - это matplotlib без numpy. Так что я не понимаю, что ты выигрываешь.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Не уверен. Svgplotlib в распакованном виде весит 1 мегабайт, а matplotlib - 50. Numpy - 4 Мб. Так что наверно там есть дополнительные модули, помимо numpy и svgplotlib.

markontheboard
() автор топика

http://ru.wikipedia.org/wiki/Postscript
http://en.wikipedia.org/wiki/PostScript
http://postscript-vk.narod.ru/pstut/index.html

%!PS-Adobe-1.0 
%%Title: Example solve equation 
%%Creator: Carpov P.V. 
%%Pages: 1 
%%DocumentFonts: Courier 
%%BoundingBox: 0 0 595 842 
%%EndComments 
   /title (Solve equation) def 
   /equation ( exp (-x/2) - 5  = 0.0125*x*x*x ) def 
   /answer {1.35} def 
   /string (          ) def 
   /function { 
      /u exch def 
      2.71828 u -2 div exp u u u mul mul 0.0125 mul sub 5 sub    
   } def 
%%EndProlog 
%%Page 1 1 
   gsave 
   595 2 div 842 2 div translate 

   /Courier findfont 16 scalefont setfont 

   -595 2 div 50 add 842 2 div 50 sub  moveto 
   title show 
   -595 2 div 50 add 842 2 div 120 sub moveto (Answer: ) show 
    
   /_x -10 def 
   /x_  10 def 
    
   0 1 100{ 
   /i exch def 
   _x x_ add 2 div 
   /x exch def 
    
   x function 
   /answer exch def 
   answer x_ function mul 0 le 
      {  x /_x exch def } 
      {  x /x_ exch def } 
   ifelse 
   }for 
    
   x string cvs 

   50 180 moveto (0.125*x*x*x) show 
   70 -70 moveto (exp ( -x/2) - 5) show 
   -150  842 2 div 80 sub   moveto  
   equation false charpath 
   0.8 setlinewidth 
   -595 2 div 50 add 80 add   842 2 div 120 sub  moveto 
   0.1 setlinewidth 
    
   string false charpath 
   1.0 setlinewidth 
   stroke 

   0.0 setlinewidth    
   newpath 
   0 200 moveto 
   0 -200 lineto 
   200 0 moveto 
   -200 0 lineto 
   0 200 moveto 
   -3 190 lineto 
   0 200 moveto 
   3 190 lineto 
   200 0 moveto 
   190 3 lineto 
   200 0 moveto 
   190 -3 lineto 
    
   -180 20 180{ 
   /i exch def 
   i 0 moveto 
   i 2 lineto 
} for 
   -180 20 180{ 
   /i exch def 
   0 i moveto 
   2 i lineto 
} for 
   200 10 moveto (x) show 
   5 200 moveto (y) show 
   3 -14 moveto (0) show 

   0.5 setlinewidth 
   180 -5 -180{ 
      /i exch def 
      i 
      2.71828 i -20 div 0.5 mul exp 5 sub 20 mul 
      /a exch def    
      a 200 le 
      { 
      i 
      a 
      i 180 eq 
         { moveto } 
         { lineto } 
      ifelse 
      } 
      if 
   }for 
   stroke 
    
   -180 5 180{ 
      /i exch def 
      i 20 div 
      /a exch def    
      a a a  mul mul  0.0125 mul  20 mul 
      /b exch def 
      b abs 200 le 
      { 
         i 
         b 
         i -180  eq 
            { moveto } 
            { lineto } 
         ifelse 
       
         } 
       
      if 
   }for 
   stroke 

   closepath 
   stroke    
    

   grestore 
   showpage 
%%Trailer
Сохрани код в файл test.ps и открой, например, программой evince:
$ evince ./test.ps
А как нарисовать текстовый файлик с нужным тебе содержимым сообрази сам.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, но не то. Нужно на лету генерировать небольшие картинки с графиками и рисовать их для вставки в форму, так как программа будет с графич. интерфейсом. Например, при перемещении ползунков соответствеющих переменных или после нажатия кнопки графики должны перерисовываться. Если даже так и получится, что постскрипт подойдет для этой цели, то оч не хочется в нем разбираться, я лучше посижу над API питоньей библиотеки, с ними уже привык.

markontheboard
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.