C++과 gnuplot 연동하기

예갈조·2024년 12월 10일

Tumor Track Project

목록 보기
15/25
  • train을 할 때마다 terminal 창을 켜서 그래프를 그릴 수는 없기에 .. 연동을 해야했음
  • 해당 블로그에서 그누플랏 명령어를 수정없이 그대로 사용할 수 있게 소스코드를 올려주셔서 .. 조금만 수정하고 사용했어요. ^ . ^



zip 파일 다운받기


  • 블로그에 올려주신 압축파일을 다운받고 압축해제

    • .cpp, .h 파일을 본인 프로젝트 파일로 옮기기



오류 수정


  • strncpy() 대신 strncpy_s()로 수정
    • strncpy_s(path, sizeof(path), gnuplotName, MAX_PATH);
  • fopen은 그래프에 사용할 데이터셋을 만들 때 필요한 코드
    • 이미 저장되어 있는 데이터 파일을 이용할 거라서 해당 코드는 삭제했습니다.



최종 메인 함수


#include "StdAfx.h"
#include <stdio.h>
#include <math.h>
#include "pGNUPlot.h"

int main(void)
{
	// Gnuplot 실행 경로 설정
	CpGnuplot plot("C:\\Program Files\\gnuplot\\bin\\wgnuplot.exe");

	// 사용할 데이퍼 파일 경로
	const char* dataFilePath = "C:/Users/user/source/repos/test/test/data.dat";

	// 저장할 파일 경로 
	const char* outputFilePath = "C:/Users/user/source/repos/test/test/output.png";
	
	// cmd에서 사용하던 거랑 똑같이 사용 가능
	plot.cmd("set terminal png size 600 600");                       
	plot.cmd("set output '%s'", outputFilePath);                    
	plot.cmd("splot '%s' with lines title '3D Plot'", dataFilePath); 
	plot.cmd("set output");                                         
	
	getchar(); // 프로그램 종료 전 대기
	return 0;
}



결과


  • 파일 저장도 잘 되고 그림도 원하는 모양으로 그려집니다 !







참고링크

Windows 환경의 C++ 언어에서 gnuplot을 사용한 그래프 출력

0개의 댓글