You are here

LabVIEW Tech-Tip 6호 - 그래프와 차트의 Tip 10가지

그래프와 차트는 LabVIEW에서 데이터를 디스플레이 할 때 가장 널리 사용되는 인디케이터 중 하나입니다. 이번 호에서는 알아두면 유용하게 사용할 수 있는 그래프와 차트의 간단한 Tip 10가지를 정리하여보았습니다. Tip 1~7은 LabVIEW 8 (한글판)과 LabVIEW 7.x 버전에서 모두 가능하며, Tip 8~10은 LabVIEW 8 (한글판)에서만 가능합니다. 

 

>> 예제 코드 다운로드  

>> LabVIEW Tech-Tip 목록 보기

Tip1. 차트 또는 그래프에 복수의 Y 스케일을 사용하고, 그래프의 커서를 각 스케일에 대응시키기

▶ Problem
그래프 또는 차트를 작성하다 보면 다음 그림과 같이 하나의 Y 스케일이 아닌 복수의 Y스케일을 필요로 할 때가 있습니다. 아래의 웨이브폼 그래프를 보면 Y 축이 왼쪽과 오른쪽에 각각 하나씩 있으며, 왼쪽 Y 스케일은 플롯 0에 대응하고, 오른쪽 Y 스케일은 플롯 1에 대응합니다. 커서도 마찬가지로 커서 0은 플롯 0에 대응하고 커서 1은 플롯 1에 대응합니다.

 

그림1. 두 개의 스케일과 커서를 사용한 웨이브폼 그래프

▶ Solution
1. 차트의 Y 스케일 위에 마우스 오른쪽 클릭을 하고 스케일 복제(Duplicate Scale)를 선택합니다. 선택을 하면 왼쪽에 두 개의 Y 스케일이 생깁니다.
2. 새로 생긴 스케일 위에 마우스 오른쪽 클릭을 하고 사이드 맞바꾸기(Swap Sides)를 클릭하면, 선택한 스케일이 그래프의 오른쪽에 위치하게 됩니다.
3. 플롯 0을 왼쪽 스케일에, 플롯 1을 오른쪽 플롯에 대응시키기 위해 그래프 오른쪽 위에 있는 플롯 범례(Plot Legend)를 위로 늘여 플롯 0, 플롯 1이 보이도록 하고, 그 중 플롯 1 위에 마우스 오른쪽 클릭을 하여 Y 스케일>> 진폭 2를 선택합니다.
4. 그래프에 마우스 오른쪽 클릭을 하여 보이는 아이템(Visible Items)>> 커서 범례(Cursor Legend)를 선택하여 커서 범례가 나타나도록 합니다.

[LabVIEW 8 (한글판)에서]
5. 커서 범례에 마우스 오른쪽 클릭을 하여 커서 생성>> 단일 플롯을 클릭합니다. 같은 과정을 한 번 더 반복하여 커서 0과 1이 생기도록 합니다.
6. 커서 0에 마우스 오른쪽 클릭을 하여 고정>> 플롯 0을 선택하고, 커서 1에 마우스 오른쪽 클릭을 하여 고정>> 플롯 1을 선택합니다.

[LabVIEW 7.x에서]
5. Cursor Legend의 첫 번째 자물쇠 모양 아이콘을 왼쪽 클릭을 하여 Lock to Plot, Plot 0을 선택하고, 두 번째 자물쇠 모양 아이콘을 왼쪽 클릭을 하여 Lock to Plot, Plot 1을 선택합니다.

Tip2. 차트 하나에 두 개의 플롯 창 띄우기

▶ Problem
아래 그림과 같이 두 개의 플롯 창을 하나의 차트 안에 넣고 싶습니다.

 

그림2. 두 개의 플롯 창을 가진 웨이브폼 차트

▶ Solution
1. 차트에 아래와 같이 클러스터 묶기 함수를 이용하여 동시에 두 개의 요소를 입력 합니다.

 

2. 차트의 그래프 영역에 마우스 오른쪽 클릭을 한 후 플롯 쌓기(Stack Plots)를 선택합니다.

Tip3. 차트 또는 그래프를 이미지 파일로 저장하기(JPEG, BMP, PNG)

▶ Problem
차트나 그래프 이미지를 추후에 보고서로 이용하기 위해 프로그램에서 이미지 파일로 저장하고 싶습니다.

 


그림3. BMP로 저장된 웨이브폼 그래프 이미지

▶ Solution
[LabVIEW 8 (한글판)에서]
1. 블록다이어그램의 그래프 터미널에 마우스 오른쪽 클릭을 하여 생성>> 인보크 노드>> 이미지 얻기를 선택합니다. 이렇게 하면 블록다이어그램에 Get Image 인보크 노드가 생깁니다.
2. 함수 팔레트에서 프로그래밍>> 그래픽 & 사운드>> 그래픽 포멧>> BMP 파일 쓰기 함수를 끌어다 놓고 다음 그림과 같이 연결합니다.

그림4. 인보크 노드를 이용한 그래프 이미지 저장 - LabVIEW 8 (한글판)

3. 실행하면 그림 파일을 저장할 경로를 묻는 대화창이 나타납니다. 만일 BMP 파일쓰기.vi 함수에 저장 경로 컨트롤을 연결하시면, 대화창이 나타나지 않고 해당 경로에 지정한 이름으로 바로 저장이 됩니다.

[LabVIEW 7.x에서]
1. 블록다이어그램의 그래프 터미널에 마우스 오른쪽 클릭을 하여 Create>> Invoke Node를 선택합니다.
2. 생성된 인보크 노드의 Method에 마우스 왼쪽 클릭하여 Get Image를 선택합니다.
3. Function 팔레트에서 All Functions>> Graphics & Sound>> Graphics Formats>> Write BMP File.vi를 끌어다 놓고 다음 그림과 같이 연결합니다.

그림5. 인보크 노드를 이용한 그래프 이미지 저장 – LabVIEW 7.x

3. 실행하면 그림 파일을 저장할 경로를 묻는 대화창이 뜹니다. 만일, Write BMP File.vi 함수에 저장 경로 컨트롤을 연결하시면, 대화창이 뜨지 않고 해당 경로에 지정한 이름으로 바로 저장이 됩니다.

Tip4. 차트 또는 그래프 이미지를 프린트하기

▶ Problem
차트나 그래프 이미지를 번거로운 작업을 거치지 않고 프로그램 상에서 바로 프린트 하고 싶습니다.

 

그림6. 프린트하려는 웨이브폼 그래프 이미지

▶ Solution
[LabVIEW 8 (한글판)에서]
1. 블록다이어그램에서 웨이브폼 그래프 터미널에 마우스 오른쪽 클릭하고, 생성>> 참조를 선택하면 웨이브폼 그래프 참조 상수가 생깁니다.
2. 함수 팔레트에서 프로그래밍>> 리포트생성>> 새 리포트, 컨트롤 이미지를 리포트에 추가, 리포트 인쇄, 리포트 종료 함수를 순서대로 끌어다 놓습니다.
3. 아래 그림과 같이 함수를 구성합니다.

 


그림7. 그래프 프린팅을 위한 LabVIEW 코딩 – LabVIEW 8 (한글판)

만일 Report Generation Toolkit이 설치되어 있다면, 함수 아이콘이 다음과 같습니다.

 

그림8. 그래프 프린팅을 위한 LabVIEW 코딩 (Report Generation Toolkit 설치 시)

4. 실행하면 그래프 영역만 바로 프린트로 인쇄됩니다.

[LabVIEW 7.x에서]
1. 블록다이어그램에서 웨이브폼 그래프 터미널에 마우스 오른쪽 클릭하고, Create>> Reference를 선택하면 Waveform Graph Reference 상수가 생깁니다.
2. 펑션 팔레트에서 All Functions>>Report Generation>>에서 New Report, Append Control Image to Report, Print Report, Dispose Report 함수를 순서대로 끌어다 놓습니다.
3. 아래 그림과 같이 함수를 구성합니다.

 

그림9. 그래프 프린팅을 위한 LabVIEW 코딩 – LabVIEW 7.x

4. 실행하면 그래프 영역만 바로 프린트로 인쇄됩니다.

Tip5. 차트의 X축에 현재 시각 표시하기

▶ Problem
차트의 X축 포멧을 절대 시간(absolute time)으로 설정하면, 현재 시각이 표시되게 하고 싶으나 엉뚱한 시간이 찍히게 됩니다. 이는 윈도우의 절대시간 0이 현재 시각으로 되어있지 않기 때문에 나타나는 현상입니다. 매우 간단하게 이를 해결할 수 있습니다.

 


그림10. X축에 현재 시각이 표시된 차트

▶ Solution
[LabVIEW 8 (한글판)에서]
1. 함수 팔레트에서 익스프레스>> 신호 조작>> 신호 분리 함수를 끌어다 놓습니다.

[LabVIEW 7.x에서]
1. Function 팔레트에서 Signal Manipulation>> Split Signal 함수를 끌어다 놓습니다.

[공통적으로]
2. 다음과 같이 함수를 구성합니다.

 

그림11. X축에 현재 시각을 표시하기 위한 코딩

3. 실행하면 X축에 현재 시각이 표시됩니다.

Tip6. 차트나 그래프의 여러 플롯 중 원하는 플롯만 표시하기

▶ Problem
차트나 그래프를 사용하여 여러 개의 플롯을 동시에 표시하는 경우, 때로는 전체 플롯 중 필요한 몇 가지의 플롯만 디스플레이 하고 싶을 때가 있습니다. 프로퍼티 노드를 이용하여 다음 그림과 같이 원하는 플롯만 선택해서 볼 수 있습니다.

 

그림12. 플롯 1과 3만 표시된 웨이브폼 차트

▶ Solution
[LabVIEW 8 (한글판)에서]
1. 블록다이어그램에서 차트나 그래프의 터미널에 마우스 오른쪽 클릭한 후 생성>> 프로퍼티노드>> 활성 플롯을 선택하면 웨이브폼 차트 ActPlot 프로퍼티 노드가 생성됩니다.
2. ActPlot 프로퍼티를 한 칸 아래로 늘리면 Plot 프로퍼티나 나오게 되는데, 이 프로퍼티를 왼쪽 클릭하여 플롯>> 보이기를 선택하면 Plot 프로퍼티가 Plot.Visible?로 바뀝니다.
3. 프로퍼티 노드에 마우스 오른쪽 클릭하여, 모든 것을 쓰기로 변경을 클릭하면 다음과 같이 됩니다.

 

그림13. 웨이브폼 차트의 프로퍼티 노드 – LabVIEW 8 (한글판)

4. ActPlot에 보이거나 보이지 않게 하고 싶은 플롯의 번호를 숫자로 입력하고, Plot.Visible?에 보이고 싶으면 true를, 보이지 않게 하고 싶으면 false를 연결합니다.
5. 첨부한 예제를 참조하세요.

[LabVIEW 7.x에서]
1. 블록다이어그램에서 차트나 그래프의 터미널에 마우스 오른쪽 클릭한 후 Create>> Property Node를 선택하면 Waveform Chart Visible 프로퍼티 노드가 생성됩니다. Visible 프로퍼티에 마우스 왼쪽 클릭하여 Active Plot을 선택합니다.
2. ActPlot 프로퍼티를 한 칸 아래로 늘리면 Plot 프로퍼티나 나오게 되는데, 이 프로퍼티를 왼쪽 클릭하여 Plot>> Visible을 선택하면 Plot 프로퍼티가 Plot.Visible?로 바뀝니다.
3. 프로퍼티 노드에 마우스 오른쪽 클릭하여, Change All to Write를 클릭하면 다음과 같이 됩니다.

 

그림14. 웨이브폼 차트의 프로퍼티 노드 – LabVIEW 7.x

4. ActPlot에 보이거나 보이지 않게 하고 싶은 플롯의 번호를 숫자로 입력하고, Plot.Visible?에 보이고 싶으면 true를, 보이지 않게 하고 싶으면 false를 연결합니다.
5. 예제 파일을 다운로드하셔서 참조하세요.

Tip7. 그래프 커서에 이름 달기

▶ Problem
다음 그림과 같이 그래프의 플롯 영역에 있는 커서에 이름을 달 수 있습니다.

 


그림 15. 그래프의 커서에 이름 표시

▶ Solution
[LabVIEW 8 (한글판)에서]
1. 그래프에 마우스 오른쪽 클릭을 하여 보이는 아이템>> 커서 범례를 선택하여 커서 범례가 나타나도록 합니다.
2. 커서 범례에 마우스 오른쪽 클릭을 하여 커서 생성>> 단일 플롯을 클릭합니다.
3. 커서 0에 마우스 오른쪽 클릭을 하여 속성>> 이름 보이기를 클릭합니다.
4. 커서에 있는 이름은 마우스로 위치를 조정할 수 있습니다.

[LabVIEW 7.x에서]
1. 그래프에 마우스 오른쪽 클릭을 하여 Visible Items>>Cursor Legend를 선택하여 커서 범례가 나타나도록 합니다.
2. Cursor Legend의 자물쇠 모양 아이콘을 왼쪽 클릭을 하여 Lock to Plot을 선택합니다.
3. 자물쇠 왼쪽에 있는 커서 아이콘을 왼쪽 클릭 하여 Show Name을 선택합니다.
4. 커서에 있는 이름은 마우스로 위치를 조정할 수 있습니다.

 LabVIEW 8 (한글판)에서만 가능한 보너스 Tip 3가지!

Tip8. 그래프의 데이터에 주석 달기

▶ Problem
다음 그림과 같이 그래프의 플롯 영역에 있는 데이터에 이름을 추가할 수 있습니다.

 


그림16. 그래프의 데이터에 주석 달기

▶ Solution
1. 프런트 패널의 그래프에 마우스 오른쪽 클릭을 하고, 데이터처리>> 주석 생성을 선택합니다.
2. 아래 그림과 같이 주석 이름을 정하고 스타일 잠금잠긴 플롯을 선택합니다.

 

그림17. 주석 생성 설정 창

3. 주석 이름은 마우스로 위치를 조정할 수 있습니다.

Tip9. 혼합된 신호 그래프

▶ Problem
LabVIEW 8 (한글판)에서는 다음과 같이 하나의 그래프 안에 여러 가지 포맷의 그래프를 혼합하여 구성할 수 있습니다.

 

그림18. 디지털과 아날로그 신호가 함께 표시되는 혼합된 신호 그래프

▶ Solution
1. 프런트 패널의 컨트롤 팔레트에서 그래프로 들어가 혼합된 신호 그래프를 선택합니다.
2. 혼합된 신호 그래프에 마우스 오른쪽 클릭을 하여 플롯 영역에 추가를 선택하면 플롯 영역이 하나 더 생기게 됩니다. 마우스를 이용하여 크기를 조정할 수 있습니다.
3. 왼쪽에 있는 플롯 범례를 보고 싶지 않으면, 마우스 오른쪽 클릭을 하여 보이는 아이템>> 플롯 범례 선택을 제거합니다.
4. 다음 그림과 같이 클러스터 묶기 함수로 서로 다른 신호를 묶고, 혼합된 신호 그래프의 터미널에 연결합니다.


그림19. 클러스터 묶기 함수를 이용하여 혼합된 신호 그래프에 연결

Tip10. 그래프 배경 이미지

▶ Problem
LabVIEW 8 (한글판)에서는 다음과 같이 그래프의 배경을 원하는 이미지로 설정할 수 있습니다.

 


그림20. 사용자 정의 그래프 배경 이미지

▶ Solution
1. 블록다이어그램에서 웨이브폼 그래프의 터미널에 마우스 오른쪽 클릭을 한 후 생성>>프로퍼티 노드>> 플롯 이미지>> 뒤를 선택합니다. 눈금이 보이지 않게 하고 싶으면 생성>>프로퍼티 노드>> 플롯 이미지>> 중간을 선택하고, 생성된 프로퍼티 노드에 마우스 오른쪽 클릭을 하여 모든 것을 쓰기로 변경을 선택합니다.
2. 함수 팔레트에서 프로그래밍>>그래픽 & 사운드>>그래픽 포멧>>BMP 파일 읽기 함수, 프로그래밍>> 그래픽 & 사운드>>그림 함수>> 패턴화된 픽스맵 그리기 함수를 블록다이어그램에 놓고 다음과 같이 와이어링 합니다.


그림21. 그림 파일을 그래프의 배경으로 넣기 위한 코딩

3. BMP 파일 읽기 함수의 Path에 원하는 그림 파일 경로를 지정합니다.
4. 실행하면 웨이브폼 그래프의 플롯 영역에 지정한 그림이 들어오게 됩니다.