當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Plot.Transforms方法代碼示例

本文整理匯總了Golang中github.com/Tradnaiofh/plotinum/plot.Plot.Transforms方法的典型用法代碼示例。如果您正苦於以下問題:Golang Plot.Transforms方法的具體用法?Golang Plot.Transforms怎麽用?Golang Plot.Transforms使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/Tradnaiofh/plotinum/plot.Plot的用法示例。


在下文中一共展示了Plot.Transforms方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: Plot

// Plot implements the plot.Plotter interface.
func (g *Grid) Plot(da plot.DrawArea, plt *plot.Plot) {
    trX, trY := plt.Transforms(&da)

    if g.Vertical.Color == nil {
        goto horiz
    }
    for _, tk := range plt.X.Tick.Marker(plt.X.Min, plt.X.Max) {
        if tk.IsMinor() {
            continue
        }
        x := trX(tk.Value)
        da.StrokeLine2(g.Vertical, x, da.Min.Y, x, da.Min.Y+da.Size.Y)
    }

horiz:
    if g.Horizontal.Color == nil {
        return
    }
    for _, tk := range plt.Y.Tick.Marker(plt.Y.Min, plt.Y.Max) {
        if tk.IsMinor() {
            continue
        }
        y := trY(tk.Value)
        da.StrokeLine2(g.Horizontal, da.Min.X, y, da.Min.X+da.Size.X, y)
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:27,代碼來源:grid.go

示例2: Plot

// Plot implements the plot.Plotter interface.
func (b *BarChart) Plot(da plot.DrawArea, plt *plot.Plot) {
    trX, trY := plt.Transforms(&da)

    for i, ht := range b.Values {
        x := b.XMin + float64(i)
        xmin := trX(float64(x))
        if !da.ContainsX(xmin) {
            continue
        }
        xmin = xmin - b.Width/2 + b.Offset
        xmax := xmin + b.Width
        bottom := b.stackedOn.BarHeight(i)
        ymin := trY(bottom)
        ymax := trY(bottom + ht)

        pts := []plot.Point{
            {xmin, ymin},
            {xmin, ymax},
            {xmax, ymax},
            {xmax, ymin},
        }
        poly := da.ClipPolygonY(pts)
        da.FillPolygon(b.Color, poly)

        pts = append(pts, plot.Pt(xmin, ymin))
        outline := da.ClipLinesY(pts)
        da.StrokeLines(b.LineStyle, outline...)
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:30,代碼來源:barchart.go

示例3: Plot

func (b *QuartPlot) Plot(da plot.DrawArea, plt *plot.Plot) {
    trX, trY := plt.Transforms(&da)
    x := trX(b.Location)
    if !da.ContainsX(x) {
        return
    }
    x += b.Offset

    med := plot.Pt(x, trY(b.Median))
    q1 := trY(b.Quartile1)
    q3 := trY(b.Quartile3)
    aLow := trY(b.AdjLow)
    aHigh := trY(b.AdjHigh)

    da.StrokeLine2(b.WhiskerStyle, x, aHigh, x, q3)
    if da.ContainsY(med.Y) {
        da.DrawGlyphNoClip(b.MedianStyle, med)
    }
    da.StrokeLine2(b.WhiskerStyle, x, aLow, x, q1)

    ostyle := b.MedianStyle
    ostyle.Radius = b.MedianStyle.Radius / 2
    for _, out := range b.Outside {
        y := trY(b.Value(out))
        if da.ContainsY(y) {
            da.DrawGlyphNoClip(ostyle, plot.Pt(x, y))
        }
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:29,代碼來源:quartile.go

示例4: Plot

// Plot implements the Plotter interface, drawing labels.
func (e *YErrorBars) Plot(da plot.DrawArea, p *plot.Plot) {
    trX, trY := p.Transforms(&da)
    for i, err := range e.YErrors {
        x := trX(e.XYs[i].X)
        ylow := trY(e.XYs[i].Y - math.Abs(err.Low))
        yhigh := trY(e.XYs[i].Y + math.Abs(err.High))

        bar := da.ClipLinesY([]plot.Point{{x, ylow}, {x, yhigh}})
        da.StrokeLines(e.LineStyle, bar...)
        e.drawCap(&da, x, ylow)
        e.drawCap(&da, x, yhigh)
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:14,代碼來源:errbars.go

示例5: Plot

// Plot implements the Plotter interface, drawing labels.
func (l *Labels) Plot(da plot.DrawArea, p *plot.Plot) {
    trX, trY := p.Transforms(&da)
    for i, label := range l.Labels {
        x := trX(l.XYs[i].X)
        y := trY(l.XYs[i].Y)
        if !da.Contains(plot.Pt(x, y)) {
            continue
        }
        x += l.XOffset
        y += l.YOffset
        da.FillText(l.TextStyle, x, y, l.XAlign, l.YAlign, label)
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:14,代碼來源:labels.go

示例6: Plot

// Plot implements the Plotter interface, drawing a line
// that connects each point in the Line.
func (h *Histogram) Plot(da plot.DrawArea, p *plot.Plot) {
    trX, trY := p.Transforms(&da)

    for _, bin := range h.Bins {
        pts := []plot.Point{
            {trX(bin.Min), trY(0)},
            {trX(bin.Max), trY(0)},
            {trX(bin.Max), trY(bin.Weight)},
            {trX(bin.Min), trY(bin.Weight)},
        }
        if h.FillColor != nil {
            da.FillPolygon(h.FillColor, da.ClipPolygonXY(pts))
        }
        pts = append(pts, plot.Pt(trX(bin.Min), trY(0)))
        da.StrokeLines(h.LineStyle, da.ClipLinesXY(pts)...)
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:19,代碼來源:histogram.go

示例7: Plot

func (b HorizBoxPlot) Plot(da plot.DrawArea, plt *plot.Plot) {
    trX, trY := plt.Transforms(&da)
    y := trY(b.Location)
    if !da.ContainsY(y) {
        return
    }
    y += b.Offset

    med := trX(b.Median)
    q1 := trX(b.Quartile1)
    q3 := trX(b.Quartile3)
    aLow := trX(b.AdjLow)
    aHigh := trX(b.AdjHigh)

    box := da.ClipLinesX([]plot.Point{
        {q1, y - b.Width/2},
        {q3, y - b.Width/2},
        {q3, y + b.Width/2},
        {q1, y + b.Width/2},
        {q1, y - b.Width/2 - b.BoxStyle.Width/2},
    })
    da.StrokeLines(b.BoxStyle, box...)

    medLine := da.ClipLinesX([]plot.Point{
        {med, y - b.Width/2},
        {med, y + b.Width/2},
    })
    da.StrokeLines(b.MedianStyle, medLine...)

    cap := b.CapWidth / 2
    whisks := da.ClipLinesX([]plot.Point{{q3, y}, {aHigh, y}},
        []plot.Point{{aHigh, y - cap}, {aHigh, y + cap}},
        []plot.Point{{q1, y}, {aLow, y}},
        []plot.Point{{aLow, y - cap}, {aLow, y + cap}})
    da.StrokeLines(b.WhiskerStyle, whisks...)

    for _, out := range b.Outside {
        x := trX(b.Value(out))
        if da.ContainsX(x) {
            da.DrawGlyphNoClip(b.GlyphStyle, plot.Pt(x, y))
        }
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:43,代碼來源:boxplot.go

示例8: Plot

// Plot implements the Plot method of the plot.Plotter interface.
func (bs *Bubbles) Plot(da plot.DrawArea, plt *plot.Plot) {
    trX, trY := plt.Transforms(&da)

    da.SetColor(bs.Color)

    for _, d := range bs.XYZs {
        x := trX(d.X)
        y := trY(d.Y)
        if !da.Contains(plot.Pt(x, y)) {
            continue
        }

        rad := bs.radius(d.Z)

        // draw a circle centered at x, y
        var p vg.Path
        p.Move(x+rad, y)
        p.Arc(x, y, rad, 0, 2*math.Pi)
        p.Close()
        da.Fill(p)
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:23,代碼來源:bubbles.go

示例9: Plot

// Plot draws the Line, implementing the plot.Plotter
// interface.
func (pts *Line) Plot(da plot.DrawArea, plt *plot.Plot) {
    trX, trY := plt.Transforms(&da)
    ps := make([]plot.Point, len(pts.XYs))

    for i, p := range pts.XYs {
        ps[i].X = trX(p.X)
        ps[i].Y = trY(p.Y)
    }

    if pts.ShadeColor != nil && len(ps) > 0 {
        da.SetColor(*pts.ShadeColor)
        minY := trY(plt.Y.Min)
        var pa vg.Path
        pa.Move(ps[0].X, minY)
        for i := range pts.XYs {
            pa.Line(ps[i].X, ps[i].Y)
        }
        pa.Line(ps[len(pts.XYs)-1].X, minY)
        pa.Close()
        da.Fill(pa)
    }

    da.StrokeLines(pts.LineStyle, da.ClipLinesXY(ps)...)
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:26,代碼來源:line.go

示例10: Plot

// Plot draws the Scatter, implementing the plot.Plotter
// interface.
func (pts *Scatter) Plot(da plot.DrawArea, plt *plot.Plot) {
    trX, trY := plt.Transforms(&da)
    for _, p := range pts.XYs {
        da.DrawGlyph(pts.GlyphStyle, plot.Pt(trX(p.X), trY(p.Y)))
    }
}
開發者ID:Tradnaiofh,項目名稱:plotinum,代碼行數:8,代碼來源:scatter.go


注:本文中的github.com/Tradnaiofh/plotinum/plot.Plot.Transforms方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。