Closed kMutagene closed 5 months ago
Further relevant info: these types of bugs (#413) do not happen on low-level API usage.
This example
[
Trace3D.initScatter3D(Trace3DStyle.Scatter3D(X = [1], Y = [2], Z = [3])) |> GenericChart.ofTraceObject false
Trace3D.initScatter3D(Trace3DStyle.Scatter3D(X = [1], Y = [2], Z = [3])) |> GenericChart.ofTraceObject false
Trace3D.initScatter3D(Trace3DStyle.Scatter3D(X = [1], Y = [2], Z = [3])) |> GenericChart.ofTraceObject false
Trace3D.initScatter3D(Trace3DStyle.Scatter3D(X = [1], Y = [2], Z = [3])) |> GenericChart.ofTraceObject false
]
|> Chart.Grid(2,2)
works fine, while using Chart.Point3D
does not:
[
Chart.Point3D([1,2,3], UseDefaults = false)
Chart.Point3D([1,2,3], UseDefaults = false)
Chart.Point3D([1,2,3], UseDefaults = false)
Chart.Point3D([1,2,3], UseDefaults = false)
Chart.Point3D([1,2,3], UseDefaults = false)
]
|> Chart.Grid(2,2)
Description
Since the member names of subplots on a layout are dynamic, e.g. a layout can have multiple scenes,
scene
,scene2
,scene<n>
, bugs can be caused by high-level APIs that retrieve and change subplot objects, for exampleChart.Grid
@ #413.Repro steps
see #413
Suggested Solution
functions on
Layout
and their top-level equivalents on theChart
API must provide options to retrieve and replace all instances of a subplot. The concrete solution for #413 would look like this: