Microsoft MVP성태의 닷넷 이야기
.NET Framework: 587. C# Plotting 라이브러리 OxyPlot [링크 복사], [링크+제목 복사],
조회: 28793
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
(연관된 글이 3개 있습니다.)

C# Plotting 라이브러리 OxyPlot

OxyPlot은 C#에서 사용할 수 있는 Plot 라이브러리로써 WPF/Windows Forms/Phone/Mono 등의 다양한 환경을 지원합니다.

OxyPlot
; https://github.com/oxyplot/oxyplot

Nuget을 통해 설치하는 것도 쉬운데요, 다음은 Windows Forms 용 설치 명령어입니다.

Install-Package OxyPlot.WindowsForms -Pre 

설치 후 다음의 글에 따라 비주얼 스튜디오 도구상자에 컨트롤을 추가할 수 있습니다.

OxyPlot 라이브러리의 컨트롤을 Toolbox에 등록 시 오류
; https://www.sysnet.pe.kr/2/0/10970

그럼 디자인 화면에서 PlotView 컨트롤을 쉽게 Form 화면에 끌어다 놓을 수 있고 다음과 같이 코딩을 해주면,

using System;
using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        PlotModel _pm = new PlotModel();

        public Form1()
        {
            InitializeComponent();
        }

        void InitializePlotView(PlotModel pm)
        {
            var axesX = new LinearAxis();
            axesX.Position = AxisPosition.Bottom;
            axesX.AxislineStyle = LineStyle.Solid;
            axesX.PositionAtZeroCrossing = true;

            axesX.Maximum = 50;
            axesX.Minimum = -10;

            axesX.MajorGridlineStyle = LineStyle.Dash;
            axesX.MinorGridlineStyle = LineStyle.Dot;

            var axesY = new LinearAxis();
            axesY.Position = AxisPosition.Left;
            axesY.AxislineStyle = LineStyle.Solid;
            axesY.PositionAtZeroCrossing = true;

            axesY.Maximum = 50;
            axesY.Minimum = -10;

            axesY.MajorGridlineStyle = LineStyle.Dash;
            axesY.MinorGridlineStyle = LineStyle.Dot;

            pm.Axes.Add(axesX);
            pm.Axes.Add(axesY);

            plotView.Model = pm;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            InitializePlotView(_pm);

            ScatterSeries series = new ScatterSeries();

            series.Points.Add(new ScatterPoint(10, 20));
            series.Points.Add(new ScatterPoint(20, 30));
            series.Points.Add(new ScatterPoint(30, 40));
            series.MarkerType = MarkerType.Circle;

            _pm.Series.Add(series);
        }
    }
}

이런 화면을 볼 수 있습니다.

oxyplot_basic_1.png

(첨부 파일은 이 글의 예제 코드를 포함합니다.)




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

[연관 글]






[최초 등록일: ]
[최종 수정일: 5/20/2016]

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

비밀번호

댓글 작성자
 



2019-05-22 11시10분
C# - PLplot 사용 예제
; http://www.sysnet.pe.kr/2/0/11909
정성태
2021-03-12 09시39분
정성태
2022-03-02 11시31분
정성태

... 91  92  93  94  95  96  97  98  [99]  100  101  102  103  104  105  ...
NoWriterDateCnt.TitleFile(s)
11458정성태2/21/201819396오류 유형: 452. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. [1]
11457정성태2/17/201824123.NET Framework: 732. C# - Task.ContinueWith 설명 [1]파일 다운로드1
11456정성태2/17/201829833.NET Framework: 731. C# - await을 Task 타입이 아닌 사용자 정의 타입에 적용하는 방법 [7]파일 다운로드1
11455정성태2/17/201818752오류 유형: 451. ASP.NET Core - An error occurred during the compilation of a resource required to process this request.
11454정성태2/12/201827646기타: 71. 만료된 Office 제품 키를 변경하는 방법
11453정성태1/31/201819596오류 유형: 450. Azure Cloud Services(classic) 배포 시 "Certificate with thumbprint ... doesn't exist." 오류 발생
11452정성태1/31/201825116기타: 70. 재현 가능한 최소한의 예제 프로젝트란? [3]파일 다운로드1
11451정성태1/24/201819338디버깅 기술: 111. windbg - x86 메모리 덤프 분석 시 닷넷 메서드의 호출 인자 값 확인
11450정성태1/24/201834662Windows: 146. PowerShell로 원격 프로세스(EXE, BAT) 실행하는 방법 [1]
11449정성태1/23/201821968오류 유형: 449. 단위 테스트 - Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.VideoRecorderEngine' or one of its dependencies. [1]
11448정성태1/20/201819536오류 유형: 448. Fakes를 포함한 단위 테스트 프로젝트를 빌드 시 CS0619 관련 오류 발생
11447정성태1/20/201820882.NET Framework: 730. dotnet user-secrets 명령어 [2]파일 다운로드1
11446정성태1/20/201821856.NET Framework: 729. windbg로 살펴보는 GC heap의 Segment 구조 [2]파일 다운로드1
11445정성태1/20/201819744.NET Framework: 728. windbg - 눈으로 확인하는 Workstation GC / Server GC
11444정성태1/19/201819805VS.NET IDE: 125. Visual Studio에서 Selenium WebDriver를 이용한 웹 브라우저 단위 테스트 구성파일 다운로드1
11443정성태1/18/201820466VC++: 124. libuv 모듈 살펴 보기
11442정성태1/18/201818208개발 환경 구성: 353. ASP.NET Core 프로젝트의 "Enable unmanaged code debugging" 옵션 켜는 방법
11441정성태1/18/201816722오류 유형: 447. ASP.NET Core 배포 오류 - Ensure that restore has run and that you have included '...' in the TargetFrameworks for your project.
11440정성태1/17/201819991.NET Framework: 727. ASP.NET의 HttpContext.Current 구현에 대응하는 ASP.NET Core의 IHttpContextAccessor/HttpContextAccessor 사용법파일 다운로드1
11439정성태1/17/201824941기타: 69. C# - CPU 100% 부하 주는 프로그램파일 다운로드1
11438정성태1/17/201819605오류 유형: 446. Error CS0234 The type or namespace name 'ITuple' does not exist in the namespace
11437정성태1/17/201818913VS.NET IDE: 124. Platform Toolset 설정에 따른 Visual C++의 헤더 파일 기본 디렉터리
11436정성태1/16/201821185개발 환경 구성: 352. ASP.NET Core (EXE) 프로세스가 IIS에서 호스팅되는 방법 - ASP.NET Core Module(AspNetCoreModule) [4]
11435정성태1/16/201822270개발 환경 구성: 351. OWIN 웹 서버(EXE)를 IIS에서 호스팅하는 방법 - HttpPlatformHandler (Reverse Proxy)파일 다운로드2
11434정성태1/15/201822705개발 환경 구성: 350. 사용자 정의 웹 서버(EXE)를 IIS에서 호스팅하는 방법 - HttpPlatformHandler (Reverse Proxy)파일 다운로드2
11433정성태1/15/201820784개발 환경 구성: 349. dotnet ef 명령어 사용을 위한 준비
... 91  92  93  94  95  96  97  98  [99]  100  101  102  103  104  105  ...