Skip to content

Commit 4207803

Browse files
Merge branch 'master' of github.com:MetalBlueberry/go-plotly
2 parents f9f41f0 + 0927914 commit 4207803

File tree

219 files changed

+5534
-1726
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

219 files changed

+5534
-1726
lines changed

examples/animation/animation.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func main() {
3737
frames = append(frames, grob.Frame{
3838
Data: []types.Trace{
3939
&grob.Scatter{
40-
Y: []float64{rand.Float64(), rand.Float64(), rand.Float64()},
40+
Y: types.DataArray([]float64{rand.Float64(), rand.Float64(), rand.Float64()}),
4141
},
4242
},
4343
})
@@ -46,8 +46,8 @@ func main() {
4646
fig := &grob.Fig{
4747
Data: []types.Trace{
4848
&grob.Scatter{
49-
X: []float64{1, 2, 3},
50-
Y: []float64{0, 0.5, 1},
49+
X: types.DataArray([]float64{1, 2, 3}),
50+
Y: types.DataArray([]float64{0, 0.5, 1}),
5151
Line: &grob.ScatterLine{
5252
Simplify: types.False,
5353
},

examples/bar.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11

22
<head>
3-
<script src="https://cdn.plot.ly/plotly-2.31.1.min.js"></script>
3+
<script src="https://cdn.plot.ly/plotly-2.34.0.min.js"></script>
44
</head>
55
<body>
66
<div id="plot"></div>
77
<script>
8-
data = JSON.parse(atob('eyJkYXRhIjpbeyJ0eXBlIjoiYmFyIiwiYmFzZSI6bnVsbCwiaG92ZXJpbmZvIjpudWxsLCJob3ZlcnRlbXBsYXRlIjpudWxsLCJob3ZlcnRleHQiOm51bGwsIm1ldGEiOm51bGwsIm9mZnNldCI6bnVsbCwidGV4dCI6bnVsbCwidGV4dHBvc2l0aW9uIjpudWxsLCJ0ZXh0dGVtcGxhdGUiOm51bGwsIndpZHRoIjpudWxsLCJ4IjpbMSwyLDNdLCJ5IjpbMSwyLDNdfV0sImxheW91dCI6eyJtZXRhIjpudWxsLCJ0aXRsZSI6eyJ0ZXh0IjoiQSBGaWd1cmUgJ1NwZWNpZmllZCcgQnkgR28gU3RydWN0In19fQ=='))
8+
data = JSON.parse(atob('eyJkYXRhIjpbeyJ0eXBlIjoiYmFyIiwieCI6WzEsMiwzXSwieSI6WzEsMiwzXX1dLCJsYXlvdXQiOnsidGl0bGUiOnsic3VidGl0bGUiOnsidGV4dCI6IkFtYXppbmcifSwidGV4dCI6IkEgRmlndXJlIFNwZWNpZmllZCBCeSBHbyBTdHJ1Y3QifX19'))
99
Plotly.newPlot('plot', data);
1010
</script>
1111
</body>

examples/bar/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ func main() {
1818
fig := &grob.Fig{
1919
Data: []types.Trace{
2020
&grob.Bar{
21-
X: []float64{1, 2, 3},
22-
Y: []float64{1, 2, 3},
21+
X: types.DataArray([]float64{1, 2, 3}),
22+
Y: types.DataArray([]float64{1, 2, 3}),
2323
},
2424
},
2525
Layout: &grob.Layout{

examples/bar_custom/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ func main() {
5252
}
5353

5454
trace1 := &grob.Bar{
55-
X: xValue,
56-
Y: yValue,
55+
X: types.DataArray(xValue),
56+
Y: types.DataArray(yValue),
5757
Text: types.ArrayOKArray(toString(yValue)...),
5858
Textposition: types.ArrayOKValue(grob.BarTextpositionAuto),
5959
Hoverinfo: types.ArrayOKValue(grob.BarHoverinfoNone),

examples/colorscale/main.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ func main() {
1616
fig := &grob.Fig{
1717
Data: []types.Trace{
1818
&grob.Scatter3d{
19-
X: x,
20-
Y: y,
21-
Z: z,
19+
X: types.DataArray(x),
20+
Y: types.DataArray(y),
21+
Z: types.DataArray(z),
2222
Mode: grob.Scatter3dModeMarkers,
2323
Marker: &grob.Scatter3dMarker{
2424
Autocolorscale: types.False,

examples/numpy_bdata/Dockerfile

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM python:3.9-slim
2+
3+
WORKDIR /app
4+
5+
RUN pip install numpy
6+
7+
COPY compute.py .
8+
9+
CMD ["python", "compute.py"]

examples/numpy_bdata/Makefile

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
IMAGE_NAME = plotly-data-generator
2+
3+
all: build run
4+
5+
build:
6+
@docker build -t $(IMAGE_NAME) .
7+
8+
run:
9+
@docker run --rm $(IMAGE_NAME)
10+
11+
12+
13+
clean:
14+
@docker rmi $(IMAGE_NAME)

examples/numpy_bdata/compute.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import numpy as np
2+
import json
3+
import base64
4+
5+
# Generate Z data using NumPy
6+
# Let's create a similar 3x5 matrix with some values
7+
z = np.array([
8+
[1, np.nan, 30, 50, 1],
9+
[20, 1, 60, 80, 30],
10+
[30, 60, 1, -10, 20]
11+
])
12+
13+
14+
15+
dtype = z.dtype
16+
bdata = z.tobytes() # Binary data representation
17+
shape = z.shape
18+
19+
# Encode the binary data as a base64 string
20+
z_bdata_base64 = base64.b64encode(bdata).decode('utf-8')
21+
22+
# Create the dictionary that represents the JSON object
23+
z_data = {
24+
'dtype': str(dtype),
25+
'shape': shape,
26+
'bdata': z_bdata_base64
27+
}
28+
29+
# Convert the dictionary to a JSON object
30+
json_data = json.dumps(z_data, indent=2)
31+
32+
# Output the JSON object
33+
print(json_data)

examples/numpy_bdata/main.go

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package main
2+
3+
import (
4+
"encoding/json"
5+
"os/exec"
6+
7+
grob "github.com/MetalBlueberry/go-plotly/generated/v2.31.1/graph_objects"
8+
"github.com/MetalBlueberry/go-plotly/pkg/offline"
9+
"github.com/MetalBlueberry/go-plotly/pkg/types"
10+
)
11+
12+
func main() {
13+
// https://plotly.com/javascript/heatmaps/
14+
// var data = [
15+
// {
16+
// z: [[1, null, 30, 50, 1], [20, 1, 60, 80, 30], [30, 60, 1, -10, 20]],
17+
// x: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
18+
// y: ['Morning', 'Afternoon', 'Evening'],
19+
// type: 'heatmap',
20+
// hoverongaps: false
21+
// }
22+
// ];
23+
zJSON, err := exec.Command("make").Output()
24+
if err != nil {
25+
panic(err)
26+
}
27+
type bdata struct {
28+
DType types.DType
29+
Shape []int
30+
BData []byte
31+
}
32+
33+
z := &bdata{}
34+
err = json.Unmarshal(zJSON, z)
35+
if err != nil {
36+
panic(err)
37+
}
38+
39+
fig := &grob.Fig{
40+
Data: []types.Trace{
41+
&grob.Heatmap{
42+
X: types.DataArray([]string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"}),
43+
Y: types.DataArray([]string{"Morning", "Afternoon", "Evening"}),
44+
Z: types.BDataArray(z.DType, z.BData, z.Shape),
45+
Hoverongaps: types.False,
46+
},
47+
},
48+
}
49+
50+
offline.Show(fig)
51+
52+
}

examples/range_slider/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ func main() {
8080

8181
fig := &grob.Fig{}
8282
fig.Data = append(fig.Data, &grob.Scatter{
83-
X: df.Col("Date").Records(),
84-
Y: df.Col("High").Float(),
83+
X: types.DataArray(df.Col("Date").Records()),
84+
Y: types.DataArray(df.Col("High").Float()),
8585
})
8686

8787
fig.Layout = &grob.Layout{

examples/responsive/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ func main() {
1818
fig := &grob.Fig{
1919
Data: []types.Trace{
2020
&grob.Bar{
21-
X: []float64{1, 2, 3},
22-
Y: []float64{1, 2, 3},
21+
X: types.DataArray([]float64{1, 2, 3}),
22+
Y: types.DataArray([]float64{1, 2, 3}),
2323
},
2424
},
2525
Layout: &grob.Layout{

examples/scatter/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ func main() {
2727
fig := &grob.Fig{
2828
Data: []types.Trace{
2929
&grob.Scatter{
30-
X: t,
31-
Y: y,
30+
X: types.DataArray(t),
31+
Y: types.DataArray(y),
3232
Mode: grob.ScatterModeMarkers,
3333
},
3434
},

examples/scatter3d/main.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ func main() {
3030
fig := &grob.Fig{
3131
Data: []types.Trace{
3232
&grob.Scatter3d{
33-
X: x,
34-
Y: y,
35-
Z: z,
33+
X: types.DataArray(x),
34+
Y: types.DataArray(y),
35+
Z: types.DataArray(z),
3636
Mode: grob.Scatter3dModeMarkers,
3737
},
3838
},

examples/stargazers/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ func main() {
6969
fig := &grob.Fig{
7070
Data: []types.Trace{
7171
&grob.Scatter{
72-
X: x,
73-
Y: y,
72+
X: types.DataArray(x),
73+
Y: types.DataArray(y),
7474
Text: types.ArrayOKArray(text...),
7575
Meta: types.ArrayOKArray(link...),
7676
Mode: grob.ScatterModeLines + "+" + grob.ScatterModeMarkers,

examples/static_image/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ func main() {
2424
fig := &grob.Fig{
2525
Data: []types.Trace{
2626
&grob.Bar{
27-
X: []float64{1, 2, 3},
28-
Y: []float64{1, 2, 3},
27+
X: types.DataArray([]float64{1, 2, 3}),
28+
Y: types.DataArray([]float64{1, 2, 3}),
2929
},
3030
},
3131
Layout: &grob.Layout{

examples/subplots_share_axes/main.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -56,24 +56,24 @@ func main() {
5656
fig := &grob.Fig{
5757
Data: []types.Trace{
5858
&grob.Scatter{
59-
X: []float64{1, 2, 3},
60-
Y: []float64{2, 3, 4},
59+
X: types.DataArray([]float64{1, 2, 3}),
60+
Y: types.DataArray([]float64{2, 3, 4}),
6161
},
6262
&grob.Scatter{
63-
X: []float64{20, 30, 40},
64-
Y: []float64{5, 5, 5},
63+
X: types.DataArray([]float64{20, 30, 40}),
64+
Y: types.DataArray([]float64{5, 5, 5}),
6565
Xaxis: "x2",
6666
Yaxis: "y",
6767
},
6868
&grob.Scatter{
69-
X: []float64{2, 3, 4},
70-
Y: []float64{600, 700, 800},
69+
X: types.DataArray([]float64{2, 3, 4}),
70+
Y: types.DataArray([]float64{600, 700, 800}),
7171
Xaxis: "x",
7272
Yaxis: "y3",
7373
},
7474
&grob.Scatter{
75-
X: []float64{4000, 5000, 6000},
76-
Y: []float64{7000, 8000, 9000},
75+
X: types.DataArray([]float64{4000, 5000, 6000}),
76+
Y: types.DataArray([]float64{7000, 8000, 9000}),
7777
Xaxis: "x4",
7878
Yaxis: "y4",
7979
},

examples/transforms/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ func main() {
1818
fig := &grob.Fig{
1919
Data: []types.Trace{
2020
&grob.Bar{
21-
X: []float64{1, 2, 3},
22-
Y: []float64{1, 2, 3},
21+
X: types.DataArray([]float64{1, 2, 3}),
22+
Y: types.DataArray([]float64{1, 2, 3}),
2323
},
2424
},
2525
Layout: &grob.Layout{

examples/unmarshal/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ func main() {
1616
fig := &grob.Fig{
1717
Data: []types.Trace{
1818
&grob.Scatter{
19-
X: t,
20-
Y: y,
19+
X: types.DataArray(t),
20+
Y: types.DataArray(y),
2121
Mode: grob.ScatterModeMarkers,
2222
},
2323
},

examples/waterfall_bar_chart/main.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ func main() {
122122
// Base
123123

124124
trace1 := &grob.Bar{
125-
X: xData,
126-
Y: []int{0, 430, 0, 570, 370, 370, 0},
125+
X: types.DataArray(xData),
126+
Y: types.DataArray([]int{0, 430, 0, 570, 370, 370, 0}),
127127
Marker: &grob.BarMarker{
128128
Color: types.ArrayOKValue(types.UseColor("rgba(1,1,1,0.0)")),
129129
},
@@ -132,8 +132,8 @@ func main() {
132132
// Revenue
133133

134134
trace2 := &grob.Bar{
135-
X: xData,
136-
Y: []int{430, 260, 690, 0, 0, 0, 0},
135+
X: types.DataArray(xData),
136+
Y: types.DataArray([]int{430, 260, 690, 0, 0, 0, 0}),
137137
Marker: &grob.BarMarker{
138138
Color: types.ArrayOKValue(types.UseColor("rgba(55,128,191,0.7)")),
139139
Line: &grob.BarMarkerLine{
@@ -146,8 +146,8 @@ func main() {
146146
// Cost
147147

148148
trace3 := &grob.Bar{
149-
X: xData,
150-
Y: []int{0, 0, 0, 120, 200, 320, 0},
149+
X: types.DataArray(xData),
150+
Y: types.DataArray([]int{0, 0, 0, 120, 200, 320, 0}),
151151
Marker: &grob.BarMarker{
152152
Color: types.ArrayOKValue(types.UseColor("rgba(219, 64, 82, 0.7)")),
153153
Line: &grob.BarMarkerLine{
@@ -160,8 +160,8 @@ func main() {
160160
// Profit
161161

162162
trace4 := &grob.Bar{
163-
X: xData,
164-
Y: []int{0, 0, 0, 0, 0, 0, 370},
163+
X: types.DataArray(xData),
164+
Y: types.DataArray([]int{0, 0, 0, 0, 0, 0, 370}),
165165
Marker: &grob.BarMarker{
166166
Color: types.ArrayOKValue(types.UseColor("rgba(50,171, 96, 0.7)")),
167167
Line: &grob.BarMarkerLine{

0 commit comments

Comments
 (0)