File tree 6 files changed +63
-5
lines changed
core/shared/src/main/scala/plotly
render/shared/src/main/scala/plotly/internals
tests/src/test/scala/plotly/doc 6 files changed +63
-5
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ sealed abstract class Sequence extends Product with Serializable
6
6
7
7
object Sequence {
8
8
final case class Doubles (seq : Seq [Double ]) extends Sequence
9
+ final case class NestedDoubles (seq : Seq [Seq [Double ]]) extends Sequence
9
10
final case class Strings (seq : Seq [String ]) extends Sequence
10
11
final case class DateTimes (seq : Seq [LocalDateTime ]) extends Sequence
11
12
@@ -17,6 +18,8 @@ object Sequence {
17
18
Doubles (s.map(_.toDouble))
18
19
implicit def fromLongSeq (s : Seq [Long ]): Sequence =
19
20
Doubles (s.map(_.toDouble))
21
+ implicit def fromNestedDoubleSeq (s : Seq [Seq [Double ]]): Sequence =
22
+ NestedDoubles (s)
20
23
implicit def fromStringSeq (s : Seq [String ]): Sequence =
21
24
Strings (s)
22
25
implicit def fromDateTimes (seq : Seq [LocalDateTime ]): Sequence =
Original file line number Diff line number Diff line change @@ -235,3 +235,28 @@ object Histogram {
235
235
Option (histfunc)
236
236
)
237
237
}
238
+
239
+ @ data class Surface (
240
+ x : Option [Sequence ],
241
+ y : Option [Sequence ],
242
+ z : Option [Sequence ],
243
+ showscale : Option [Boolean ],
244
+ opacity : Option [Double ]
245
+ ) extends Trace
246
+
247
+ object Surface {
248
+ def apply (
249
+ x : Sequence = null ,
250
+ y : Sequence = null ,
251
+ z : Sequence = null ,
252
+ showscale : JBoolean = null ,
253
+ opacity : JDouble = null
254
+ ): Surface =
255
+ Surface (
256
+ Option (x),
257
+ Option (y),
258
+ Option (z),
259
+ Option (showscale) .map(b => b : Boolean ),
260
+ Option (opacity) .map(d => d : Double )
261
+ )
262
+ }
Original file line number Diff line number Diff line change @@ -32,7 +32,9 @@ import dataclass.data
32
32
bargap : Option [Double ],
33
33
bargroupgap : Option [Double ],
34
34
hovermode : Option [HoverMode ],
35
- boxmode : Option [BoxMode ]
35
+ boxmode : Option [BoxMode ],
36
+ scene : Option [Scene ]
37
+
36
38
)
37
39
38
40
object Layout {
@@ -62,7 +64,8 @@ object Layout {
62
64
bargap : JDouble = null ,
63
65
bargroupgap : JDouble = null ,
64
66
hovermode : HoverMode = null ,
65
- boxmode : BoxMode = null
67
+ boxmode : BoxMode = null ,
68
+ scene : Scene = null
66
69
): Layout =
67
70
new Layout (
68
71
Option (title),
@@ -90,6 +93,7 @@ object Layout {
90
93
Option (bargap).map(x => x),
91
94
Option (bargroupgap).map(x => x),
92
95
Option (hovermode),
93
- Option (boxmode)
96
+ Option (boxmode),
97
+ Option (scene)
94
98
)
95
99
}
Original file line number Diff line number Diff line change
1
+ package plotly
2
+ package layout
3
+
4
+ import java .lang .{ Integer => JInt , Double => JDouble , Boolean => JBoolean }
5
+
6
+ import dataclass .data
7
+ import plotly .element ._
8
+
9
+ @ data class Scene (
10
+ xaxis : Option [Axis ],
11
+ yaxis : Option [Axis ],
12
+ zaxis : Option [Axis ]
13
+ )
14
+
15
+ object Scene {
16
+ def apply (
17
+ xaxis : Axis = null ,
18
+ yaxis : Axis = null ,
19
+ zaxis : Axis = null
20
+ ): Scene = new Scene (
21
+ Option (xaxis),
22
+ Option (yaxis),
23
+ Option (zaxis)
24
+ )
25
+ }
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ object ArgonautCodecsInternals extends ArgonautCodecsExtra {
45
45
implicit val boxMeanBoolIsWrapper : IsWrapper [BoxMean .Bool ] = null
46
46
implicit val boxPointsBoolIsWrapper : IsWrapper [BoxPoints .Bool ] = null
47
47
implicit val sequenceDoublesIsWrapper : IsWrapper [Sequence .Doubles ] = null
48
+ implicit val sequenceNestedDoublesIsWrapper : IsWrapper [Sequence .NestedDoubles ] = null
48
49
implicit val sequenceStringsIsWrapper : IsWrapper [Sequence .Strings ] = null
49
50
implicit val sequenceDatetimesIsWrapper : IsWrapper [Sequence .DateTimes ] = null
50
51
implicit val doubleElementIsWrapper : IsWrapper [Element .DoubleElement ] = null
Original file line number Diff line number Diff line change @@ -249,10 +249,10 @@ class DocumentationTests extends FlatSpec with Matchers {
249
249
// TODO Heatmaps
250
250
// TODO Heatmap and contour colorscales
251
251
// TODO Polar charts
252
- " scientific/log"
252
+ " scientific/log" ,
253
253
// TODO Financial charts
254
254
// TODO Maps
255
- // TODO 3D charts
255
+ " 3d/3d-surface "
256
256
)
257
257
258
258
val subDirs = subDirNames.map(new File (dir, _))
You can’t perform that action at this time.
0 commit comments