Go 언어로 폴리라인 또는 막대 그리기

14315 단어 Go도표가시화

Go로 차트를 그리고 싶어요.


시각화된 데이터의 도구와 포장이 많고,
Go 언어로 도표만 그리면 되기 때문에 당시 조사한 내용을 정리했습니다.

Overview

  • 작업 환경
  • 사전 준비
  • 접선도
  • 스트라이프 맵
  • 참고문
  • 작업 환경

  • Go 1.12
  • Windows 10
  • Goland 2019.1
  • 사전 준비


    다음 명령으로 go 패키지를 설치하십시오.
    이것은 고에서 도표를 묘사하기 위해 사용하는 포장이다.
    패키지 상세 정보는 여기 로 이동하십시오.
    go get gonum.org/v1/plot/...
    

    접선도


    접선도를 그리는 데 필요한 코드를 설명합니다.
    이것은 가져올 포장 일람표입니다.
    import (
        "gonum.org/v1/plot"
        "gonum.org/v1/plot/plotter"
        "gonum.org/v1/plot/plotutil"
        "gonum.org/v1/plot/vg"
    )
    
    우선plot 실례를 생성하십시오.
    이어서 도표의 표시 항목을 설정합니다.
    // インスタンスを生成
    p, err := plot.New()
    if err != nil {
        panic(err)
    }
    
    // 表示項目の設定
    p.Title.Text = "only english title"
    p.X.Label.Text = "X axis"
    p.Y.Label.Text = "Y axis"
    
    스트라이프 그림의 표시는plotter입니다.XYs형을 이용합니다.
    XY형은 글자처럼 X, Y축의 값을 나타내고 수학에서 자주 사용하는 x, y 좌표 표현과 대응한다.
    type XYs []XY
    
    type XY struct {
        X, Y float64
    }
    
    이번 일을 위해 샘플 데이터를 만들었습니다.
    xyAxis 구조체를 정의하여 슬라이스를 만듭니다.
    type xyAxis struct {
        x float64
        y float64
    }
    
    nums := []xyAxis {
        [1, 11],
        [2, 33],
        [3, 22],
        [4, 55],
        [5, 44],
        [6, 77],
        [7, 66],
        [8, 99],
        [9, 88],
    }
    
    샘플 데이터plotter.XYs 모델에 적용됩니다.
    pts := make(plotter.XYs, len(nums))
    
    for i, axis := range nums {
        pts[i].X = axis.x
        pts[i].Y = axis.y
    }
    
    이렇게 하면 데이터의 준비가 완성된다.
    다음 함수를 이용하여 도표를 생성하여 그 결과를 저장합니다.
    // グラフを描画
    err = plotutil.AddLinePoints(p, pts)
    if err != nil {
        panic(err)
    }
    
    // 描画結果を保存
    // "5*vg.Inch" の数値を変更すれば,保存する画像のサイズを調整できます.
    if err := p.Save(5*vg.Inch, 5*vg.Inch, "sample1.png"); err != nil{
        panic(err)
    }
    
    실행 파일과 같은 디렉터리에 "sample1.png"을 생성합니다.
    sample1.png

    스트라이프 맵


    스트라이프 그림을 그리는 데 필요한 코드를 설명합니다.
    이것은 가져올 포장 일람표입니다.
    import (
        "gonum.org/v1/plot"
        "gonum.org/v1/plot/plotter"
        "gonum.org/v1/plot/plotutil"
        "gonum.org/v1/plot/vg"
    )
    
    우선plot 실례를 생성하십시오.
    이어서 도표의 표시 항목을 설정합니다.
    // インスタンスを生成
    p, err := plot.New()
    if err != nil {
        panic(err)
    }
    
    // 表示項目の設定
    p.Title.Text = "only english title"
    p.Y.Label.Text = "Y axis"
    
    스트라이프 그림의 묘사는plotter이다.Values 모델을 사용합니다.
    type Values []float64
    
    이번에 준비한 샘플 데이터는 여기 있습니다.
    nums := plotter.Values{11,33,22,55,44,77,66,99,88}
    
    막대에 그려진 막대의 너비를 설정합니다.
    이번에는 15픽셀입니다.
    breadth := vg.Points(15)
    
    스트라이프를 생성합니다.
    그림을 그린 후 상세한 내용을 설정하고 판면 디자인을 정리합니다.
    bar, err := plotter.NewBarChart(num, breadth)
    if err != nil {
        panic(err)
    }
    
    // 棒グラフ自体の枠線
    bar.LineStyle.Width = vg.Length(0)
    
    // 色を決める 0は赤になります.
    bar.Color = plotutil.Color(0)
    
    생성된 스트라이프를 그립니다.
    동시에 도표의 설명을 추가한다.
    p.Add(bar)
    
    // 棒グラフの名前を"bar1"とします.
    p.Legend.Add("bar1", bar)
    
    // legendの位置を上側にします(デフォルトは下側)
    p.Legend.Top = true
    
    // X軸側の説明項目を追加します.
    p.NominalX("one", "two", "three", "four", "five", "six", "seven", "eight", "nine")
    
    마지막으로 그린 이미지를 저장합니다.
    if err := p.Save(5*vg.Inch, 5*vg.Inch, "sample2.png"); err != nil {
        panic(err)
    }
    
    sample2.png

    참고문


    package plot
    Example plots

    좋은 웹페이지 즐겨찾기