Microsoft MVP성태의 닷넷 이야기
Graphics: 37. C# - PLplot - 출력 모음(Family File Output) [링크 복사], [링크+제목 복사]
조회: 9990
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

C# - PLplot - 출력 모음(Family File Output)

PLplot은 "begin of page"와 "end of page" 사이에 drawing을 하게 됩니다.

{
    pl.bop();

    // ... drawing

    pl.eop();
}

그런데 bop, eop를 연속으로 호출하면,

{
    pl.bop();

    // ... drawing

    pl.eop();
}

{
    pl.bop();

    // ... drawing

    pl.eop();
}

다음과 같은 식의 오류가 발생합니다.

*** PLPLOT WARNING ***
All pages after the first skipped because family file output not specified.

즉, PLplot은 page를 하나의 canvas로 다루는데 기본적으로는 Page가 하나밖에 주어지지 않으므로 두 번째의 bop 호출에서 실패하는 것입니다. 그렇다면 다중 페이지를 어떻게 제공할 수 있을까요? 이에 대해서는 PLplot 문서에 찾아볼 수 있습니다.

Chapter 3. Advanced Use of PLplot - Family File Output
; http://www.ccp4.ac.uk/dist/checkout/plplot-5.11.0/doc/docbook/src/output-devices.html#familying

그러니까, 페이지 제공 개념이 그냥 단순히 파일 출력에 대한 번호를 설정하는 식입니다. 코드로 보면, 파일 명에 번호가 출력할 수 있는 여지를 주고,

using (var pl = new PLStream())
{
    pl.sdev("png");
    pl.sfnam("image%n.png");
}

제공할 페이지 수를 지정하는데, 반드시 init 호출 이전에 해야 합니다.

using (var pl = new PLStream())
{
    pl.sdev("png");
    pl.sfnam("image%n.png");

    pl.sfam(1, 1, 2); // 첫 번째 인자 - family output enable
                      // 두 번째 인자 - 첫 번째 페이지의 번호
                      // 세 번째 인자 - 마지막 페이지의 번호
    pl.init();
}

이후, bop/eop를 두 번 하게 되면 각각의 페이지 출력에 대해 image1.png, image2.png가 됩니다. 대충 감이 오시죠? ^^

(이 글의 예제 코드는 github - PLplotGridmap에서 제공합니다.)




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 6/27/2019]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 46  47  48  49  50  51  52  53  [54]  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12277정성태7/23/202010858개발 환경 구성: 498. DEVPATH 환경 변수의 사용 예 - .NET Reflector의 (PDB 연결이 없는) DLL의 소스 코드 디버깅
12276정성태7/23/202010062.NET Framework: 930. 개발자를 위한 닷넷 어셈블리 바인딩 - DEVPATH 환경 변수
12275정성태7/22/202012607개발 환경 구성: 497. 닷넷에서 접근해보는 InterSystems의 IRIS Data Platform 데이터베이스파일 다운로드1
12274정성태7/21/202011985개발 환경 구성: 496. Azure - Blob Storage Account의 Location 이전 방법 [1]파일 다운로드1
12273정성태7/18/202013620개발 환경 구성: 495. Azure - Location이 다른 웹/DB 서버의 경우 발생하는 성능 하락
12272정성태7/16/20208645.NET Framework: 929. (StrongName의 버전 구분이 필요 없는) .NET Core 어셈블리 바인딩 규칙 [2]파일 다운로드1
12271정성태7/16/202010686.NET Framework: 928. .NET Framework의 Strong-named 어셈블리 바인딩 (2) - 런타임에 바인딩 리디렉션파일 다운로드1
12270정성태7/16/202011502오류 유형: 633. SSL_CTX_use_certificate_file - error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
12269정성태7/16/20208543오류 유형: 632. .NET Core 웹 응용 프로그램 - The process was terminated due to an unhandled exception.
12268정성태7/15/202010678오류 유형: 631. .NET Core 웹 응용 프로그램 오류 - HTTP Error 500.35 - ANCM Multiple In-Process Applications in same Process
12267정성태7/15/202012358.NET Framework: 927. C# - 윈도우 프로그램에서 Credential Manager를 이용한 보안 정보 저장파일 다운로드1
12266정성태7/14/202010049오류 유형: 630. 사용자 계정을 지정해 CreateService API로 서비스를 등록한 경우 "Error 1069: The service did not start due to a logon failure." 오류발생
12265정성태7/10/20209219오류 유형: 629. Visual Studio - 웹 애플리케이션 실행 시 "Unable to connect to web server 'IIS Express'." 오류 발생
12264정성태7/9/202018209오류 유형: 628. docker: Error response from daemon: Conflict. The container name "..." is already in use by container "...".
12261정성태7/9/202011180VS.NET IDE: 148. 윈도우 10에서 .NET Core 응용 프로그램을 리눅스 환경에서 실행하는 2가지 방법 - docker, WSL 2 [5]
12260정성태7/8/20209586.NET Framework: 926. C# - ETW를 이용한 ThreadPool 스레드 감시파일 다운로드1
12259정성태7/8/20209119오류 유형: 627. nvlddmkm.sys의 BAD_POOL_HEADER BSOD 문제 [1]
12258정성태7/8/202012279기타: 77. DataDog APM 간략 소개
12257정성태7/7/20209309.NET Framework: 925. C# - ETW를 이용한 Monitor Enter/Exit 감시파일 다운로드1
12256정성태7/7/20209738.NET Framework: 924. C# - Reflection으로 변경할 수 없는 readonly 정적 필드 [4]
12255정성태7/6/202010138.NET Framework: 923. C# - ETW(Event Tracing for Windows)를 이용한 Finalizer 실행 감시파일 다운로드1
12254정성태7/2/20209997오류 유형: 626. git - REMOTE HOST IDENTIFICATION HAS CHANGED!
12253정성태7/2/202011074.NET Framework: 922. C# - .NET ThreadPool의 Local/Global Queue파일 다운로드1
12252정성태7/2/202013037.NET Framework: 921. C# - I/O 스레드를 사용한 비동기 소켓 서버/클라이언트파일 다운로드2
12251정성태7/1/202011009.NET Framework: 920. C# - 파일의 비동기 처리 유무에 따른 스레드 상황 [1]파일 다운로드2
12250정성태6/30/202013648.NET Framework: 919. C# - 닷넷에서의 진정한 비동기 호출을 가능케 하는 I/O 스레드 사용법 [1]파일 다운로드1
... 46  47  48  49  50  51  52  53  [54]  55  56  57  58  59  60  ...