RMagick과 Gruff로 그래프를 그려보자

Gruff는 이쁜(루비스런?) 그래프를 그려주는 라이브러리이다. 광우병에 대해 썼던 글의 그래프가 바로 Gruff로 그린 것이다.  Gnuplot처럼 다재다능하지는 않지만, 한글로 라벨을 넣기도 쉽고 코드 몇 줄로 꽤 보기좋은 그래프를 얻을 수 있다.

RMagick 설치

RMagick은 다른 gem들에 비해 설치가 좀 까다롭다(고 한다.) Installation FAQ을 먼저 훑어보고, 권장하는 FreeType, libjpeg, libpng, libwmf, ghostscript등의 패키지를 먼저 설치한다.

데비안의 경우 RMagick이 패키징 되어 있어서 apt(dselect)를 이용하여 RMagick을 쉽게 설치할 수 있다.

  1. apt-get install librmagick-ruby


Gruff 설치

  1. gem install gruff

여기 있는 예제를 실행했을 때 png파일이 잘 생기는 지 확인해본다. 소스를 보면 사용법이 정말 쉬움을 알 수 있다. 객체를 만들고 타이틀과 레이블 지정하고, 데이터를 넣어주면 끝이다.


테마

Gruff는 미리 만들어놓은 몇 가지 테마를 메쏘드로 제공한다. 데이터를 넣기전에 이들 메쏘드를 호출하면 색들을 조정해준다. 'keynote', '37signals', 'rails_keynote', 'odeo'등의 테마를 제공한다. 'keynote' 테마를 선택하면 사람들이 키노트로 그렸다고 생각한다. ㅎㅎ

물론 직접 설정하는 것도 가능하다. 테마는 'colors', 'marker_color', 'background-color'들로 구성된다. 'colors'는 데이터를 그리는 색상들이고, 'marker_color'는 보조선의 색상, 'background-color'는 그라데이션으로 그려주는 배경 색상이고, 이런 색상들을 정해서 Array로 넣어주면 된다.

근데 데이터 색상의 경우, 'data'함수를 이용하여 데이터를 넣을 때 색상이 지정되므로, 이후에 테마 메쏘드를 실행하더라도 데이터 색상은 바뀌지 않는다. 그러므로 데이터를 넣기 전에 색상 설정을 끝내놓는게 좋다.

레일즈에서 쓰기

그림만 보여주는 메쏘드를 쓰려면 이 튜토리얼을 참고하면 된다. 그림을 웹사이트 안에 삽입하려면 컨트롤러에서 파일을 저장하고 뷰에서는 그 파일을 읽어서 보여주도록 하면 될 것이다. (캐싱을 적절히...)

한글

한글을 쓰려면 한글 ttf 폰트의 경로를 'font' 메쏘드로 지정해야 된다.

이 글은 스프링노트에서 작성되었습니다.

2007/10/15 19:30 2007/10/15 19:30

TRACKBACK :: http://www.yongyeol.com/blog/trackback/14

  1. Xanax.

    Tracked from Xanax online.  삭제

    Xanax. Xanax detox.

    2010/09/04 17:41
  2. Ambien sleeping pill.

    Tracked from Generic ambien.  삭제

    Ambien. Ambien online no prescription overnight delivery.

    2010/09/05 13:45
  3. Buy ambien without a prescription.

    Tracked from Ambien.  삭제

    Buy ambien. Ambien and amnesia.

    2010/09/07 12:36
  1. haneul  댓글주소  수정/삭제  댓글쓰기 2007/10/15 21:00
    으흣; 거북사마 낚였군요 ㅋㅋ
    그래프 예쁘네요 :)
  2. 거북거북  댓글주소  수정/삭제  댓글쓰기 2007/10/15 21:13
    오 제 한 몸 바쳐 포스팅 거리를 만들어드렸... ㅋㅋㅋㅋ
  3. yy  댓글주소  수정/삭제  댓글쓰기 2007/10/15 21:36
    ㄱㅅㄱㅅ ㅎㅎ
  4. 남쪽계단  댓글주소  수정/삭제  댓글쓰기 2007/10/16 10:46
    야, 이거 괜찮네요. 한번 배워볼까 봐요.



« 최근 글 : 1 : ... 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : ... 40 : 오래된 글 »