Объединение нескольких чартов с общим зумом

Я использую "github.com/go-echarts/go-echarts". Ниже приведен код, который выводит график kline. Подскажите, пожалуйста, как можно добавить к этому графику charts.NewLine(), чтобы у них совпадала нижняя ось и был единый zoom? P.S. Изучил https://github.com/go-echarts/examples/tree/master/examples, но там не нашел необходимого примера. Также нашел https://github.com/go-echarts/go-echarts/issues/169, но код оттуда у меня подсвечивается ошибками, а попытки переписать под мою реализацию не увенчался успехом. введите сюда описание изображения

package main

import (
    "net/http"

    "github.com/go-echarts/go-echarts/v2/charts"
    "github.com/go-echarts/go-echarts/v2/opts"
)

type klineData struct {
    date string
    data [4]float32
}

var kd = [...]klineData{
    {date: "2018/1/25", data: [4]float32{2300, 2291.3, 2288.26, 2308.38}},
    {date: "2018/1/28", data: [4]float32{2295.35, 2346.5, 2295.35, 2346.92}},
    {date: "2018/1/29", data: [4]float32{2347.22, 2358.98, 2337.35, 2363.8}},
    {date: "2018/1/30", data: [4]float32{2360.75, 2382.48, 2347.89, 2383.76}},
    {date: "2018/1/31", data: [4]float32{2383.43, 2385.42, 2371.23, 2391.82}},
    {date: "2018/2/1", data: [4]float32{2377.41, 2419.02, 2369.57, 2421.15}},
    {date: "2018/2/4", data: [4]float32{2425.92, 2428.15, 2417.58, 2440.38}},
    {date: "2018/2/5", data: [4]float32{2411, 2433.13, 2403.3, 2437.42}},
    {date: "2018/2/6", data: [4]float32{2432.68, 2434.48, 2427.7, 2441.73}},
    {date: "2018/2/7", data: [4]float32{2430.69, 2418.53, 2394.22, 2433.89}},
    {date: "2018/2/8", data: [4]float32{2416.62, 2432.4, 2414.4, 2443.03}},
    {date: "2018/2/18", data: [4]float32{2441.91, 2421.56, 2415.43, 2444.8}},
    {date: "2018/2/19", data: [4]float32{2420.26, 2382.91, 2373.53, 2427.07}},
    {date: "2018/2/20", data: [4]float32{2383.49, 2397.18, 2370.61, 2397.94}},
    {date: "2018/2/21", data: [4]float32{2378.82, 2325.95, 2309.17, 2378.82}},
    {date: "2018/2/22", data: [4]float32{2322.94, 2314.16, 2308.76, 2330.88}},
    {date: "2018/2/25", data: [4]float32{2320.62, 2325.82, 2315.01, 2338.78}},
    {date: "2018/2/26", data: [4]float32{2313.74, 2293.34, 2289.89, 2340.71}},
    {date: "2018/2/27", data: [4]float32{2297.77, 2313.22, 2292.03, 2324.63}},
    {date: "2018/2/28", data: [4]float32{2322.32, 2365.59, 2308.92, 2366.16}},
    {date: "2018/3/1", data: [4]float32{2364.54, 2359.51, 2330.86, 2369.65}},
    {date: "2018/3/4", data: [4]float32{2332.08, 2273.4, 2259.25, 2333.54}},
    {date: "2018/3/5", data: [4]float32{2274.81, 2326.31, 2270.1, 2328.14}},
    {date: "2018/3/6", data: [4]float32{2333.61, 2347.18, 2321.6, 2351.44}},
    {date: "2018/3/7", data: [4]float32{2340.44, 2324.29, 2304.27, 2352.02}},
}

type KlineExamples struct{}

func httpserver(w http.ResponseWriter, _ *http.Request) {
    kline := charts.NewKLine()

    x := make([]string, 0)
    y := make([]opts.KlineData, 0)
    for i := 0; i < len(kd); i++ {
        x = append(x, kd[i].date)
        y = append(y, opts.KlineData{Value: kd[i].data})
    }

    kline.SetGlobalOptions(
        charts.WithTitleOpts(opts.Title{
            Title: "Example",
        }),
        charts.WithXAxisOpts(opts.XAxis{
            SplitNumber: 20,
        }),
        charts.WithYAxisOpts(opts.YAxis{
            Scale: true,
        }),
        charts.WithDataZoomOpts(opts.DataZoom{
            Type:       "inside",
            Start:      50,
            End:        100,
            XAxisIndex: []int{0},
        }),
    )

    kline.SetXAxis(x).AddSeries("kline", y)
    kline.Render(w)
}

func main() {
    http.HandleFunc("/", httpserver)
    http.ListenAndServe(":5001", nil)
}

Ответы (0 шт):