본문 바로가기
Spotfire

spotfire ) 타점 클릭해서 타점에 해당하는 정보를 갖고 있는 타점 filter out 시키기

by C.Mond 2022. 8. 23.
728x90
728x90

안녕하세요 오늘은 타점을 클릭해서 타점이 갖고 있는 정보에 해당한는 row를 필터아웃 시키는 기능에 대해 알아보려고 합니다.

 

이를 구현하려면 많은 방법이 있겟지만 저는

2개의 객체 1개의 iron python script를 이용했습니다.

 

data는 iris data를 사용하였습니다. 

 

먼저 select라는 객체를 document properties를 만들어 줬습니다.

이 안에 내가 선택한 타점의 정보를 담을 것입니다.

여기서는 "Species"정보를 담아 내가 선택한 타점의 "Species"를 전부 filter out 시켜보려합니다.

 

위와 같이 data function를 만들어 줍니다.

input은 다음과 같이

output은 다음과 같이 만듭니다.

다음 run을 실행합니다

 

input handler는 위와 같이 설정합니다.

output handler는 위와 같이 설정해 줍니다.

그럼 타점을 하나 선택해보고 타점에 해당하는 Species가 잘 들어가는지 확인합니다.

 

잘들어가네요

이제 다음으로 쓰일 Document Properties를 만들어줍니다

이번엔 select.transform이라는 이름으로 만들겠습니다.

위와 같이 만둘고 select에 다음과 같은 script를 입력해 줍니다.

input=Document.Properties["select"]
input=input.split(",")
strip_input=[]
for i in input:
 i=i.strip()
 strip_input.append(i)
input=strip_input
input=filter(None,input)
Document.Properties["select.transform"]="('"+"','".join(input)+"')" print(input)

위 코드는 select에서 받은 정보를 ('정보1','정보2')형식으로 바꿔주는 코드입니다.

script를 입력하고 아무것도 선택하지 않으면 위와 같이 나타날겁니다.

이제 하나만 더 설정해주면 마무리 입니다.

내가 필터아웃을 적용시키고자 하는 scatter를 우클릭 - properties - data - limit data using expression에 다음과 같이 입력합니다.

Not([Species] in ${select.transform})

해당코드는 selct.transform에 있는 정보를 species에서 제거하고 보여주도록 data에 limit를 거는것입니다.

이렇게 적용하고 시각화에서 타점을 선택하면 해당하는 타점의 정보를 갖고있는 타점들이 모두 사라집니다.

여기서는 잘 보기위해 시각화를 2개만들어 보여드리겠습니다.

 

파란 타점 setosa를 선택하니 setosa타점들이 모두 사라지는것을 볼 수 있습니다.

파랑 노랑 setosa virginica2개를 선택하니 2개에 해당한느 타점 모두가 사라진걸 볼 수 있습니다.

 

728x90
728x90

댓글