본문 바로가기
Data Analysis/Python

Spotfire & Python : Marking 한 값을 가져오기

by 불탄오징어 2015. 8. 20.
반응형

Spotfire에서 Marking은 다양한 용도로 사용되며 Spotfire를 특색있게 만드는 중요한 기능 중 하나입니다. 특히 Marking을 통해 선택한 행을 기준으로 시각화 차트의 조건으로 부여한다던지 다양한 시각화차트간의 연관관계를 시각적으로 확인할 수 있도록 구성할 수 있습니다.

 

다만 정형보고서를 만들다보면 아쉬운게 Marking 된 행의 특정 칼럼 값을 가져오고 싶을 때가 있는데 기본적으로는 지원하지 않는 기능입니다. (Spotfire 6.5 기준). 다행이라면 Ironpython의 도움을 받아서 구현이 가능합니다. 

 

아래의 예제는 Baseball 데이터를 이용하여 Marking한 행의 칼럼 "선수명"의 값을 을 가져오는 예제입니다.

(참조 : http://easyspotfire.blogspot.kr/2015/05/set-document-properties-from-marked.html)

 

   1. Text Area에 "test"라는 Input Field를 생성(Marking한 값을 담을 Document propety)
      (Document Property에 담는 이유는 이것을 활용해서 다른 데이터의 제약조건으로 활용가능)

      

 

 

   2. 다음의 스크립트를 작성하여 버튼으로 생성한다.

 

import Spotfire.Dxp.Data.DataTable
from Spotfire.Dxp.Data import *

table = Document.Data.Tables["Baseball"]   # 테이블 명을 지정
col   = DataValueCursor.CreateFormatted(table.Columns["선수명"])   # 가져올 칼럼 값을 지정

markedRows = Document.Data.Markings["Marking"].GetSelection(table).AsIndexSet()  # 적용할 Marking의 이름을 기입

for row in table.GetRows(markedRows, col):
	Document.Properties["test"] = col.CurrentValue  # 출력할 Document Property를 지정

 

 

      

 

3. 결과

   아래 이미지를 보면 선택한 행의 선수명을 test의 input text에 삽입된 것을 확인할 수 있습니다.

   

      

 

 

댓글