본문 바로가기

.Tip

Rails) Graph Library(Module)

Rails에서 Graph표현을 어떻게 해야 할까 고민중에,

한국 루비 사용자 포럼에서 다음의 모듈들을 확인 할 수 있었다.


1. Gruff

     http://geoffreygrosenbach.com/projects/show/5

image

   1) 선행 작업 (RMagick 필요)

         설치시에는 상관 없으나, Gruff을 통하여 위 그림처럼 표현을 하려면,

         RMagick을 필요로 한다.

For Ubuntu )

$> apt-get install imagemagick
$> apt-get install libmagick9-dev
$> gem install rmagick

    2) 문제 발생

         다음 로그처럼, ImageMagick Version 문제가 생김

/usr/bin/ruby1.8 extconf.rb install rmagick -include-dependencies
checking for Ruby version >= 1.8.2... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.3.0... no
Can't install RMagick 2.0.0. You must have ImageMagick 6.3.0 or later.

          해결) gem update 말고, 수동 설치함

          - ImageMagick 최신 버젼받기 [여기 링크]

          - Install 하기 [여기 링크]


           참고) 버전확인을 해보자

root:# convert -version
Version: ImageMagick 6.3.7 01/22/08 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC


    3) Gruff Install 방법 (다음 중 택일)

$> gem install gruff

$> ./script/plugin install http://topfunky.net/svn/plugins/gruff


    4) 테스트

임의의 Method에서 다음처럼 넣어보자

출처 : http://nubyonrails.com/pages/gruff

def Test

  g = Gruff::Line.new
  g.title = "My Graph"

  g.data("Apples", [1, 2, 3, 4, 4, 3])
  g.data("Oranges", [4, 8, 7, 9, 8, 9])
  g.data("Watermelon", [2, 3, 1, 5, 6, 8])
  g.data("Peaches", [9, 9, 10, 8, 7, 9])

  g.labels = {0 => '2003', 2 => '2004', 4 => '2005'}

  g.write('my_fruity_graph.png')

end

          rails/ 폴더 아래에 "my_frity_graph.png"생김

image


2. Sparklines

   이는 Gruff보다는 기능이 조금 빠진다.

<%= spark_tag [12, 22, 34, 42, 33], 
:type => 'smooth',
:height => 15 %>

image


이외 Flexbilrails 라고 있다고 하는데 이는 일단 배제..;;