-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3d charts support #68
Comments
Scatter plots are easy to do. Actually, this example works fine on the dev build: fun main() {
val plot = Plotly.plot {
trace {
set("type","scatter3d") // bypassing type safety here
x(1,2,3)
y(1,2,3)
z(1,2,3)
}
}
plot.makeFile()
} The surface is more tricky because it requires some tweaks to trace values to allow for meshes. You still can use it via private fun l(vararg numbers: Number) = numbers.map { it.asValue() }.asValue()
fun main() {
val plot = Plotly.plot {
trace {
z.value = listOf(
l(8.83, 8.89, 8.81, 8.87, 8.9, 8.87),
l(8.89, 8.94, 8.85, 8.94, 8.96, 8.92),
l(8.84, 8.9, 8.82, 8.92, 8.93, 8.91),
l(8.79, 8.85, 8.79, 8.9, 8.94, 8.92),
l(8.79, 8.88, 8.81, 8.9, 8.95, 8.92),
l(8.8, 8.82, 8.78, 8.91, 8.94, 8.92),
l(8.75, 8.78, 8.77, 8.91, 8.95, 8.92),
l(8.8, 8.8, 8.77, 8.91, 8.95, 8.94),
l(8.74, 8.81, 8.76, 8.93, 8.98, 8.99),
l(8.89, 8.99, 8.92, 9.1, 9.13, 9.11),
l(8.97, 8.97, 8.91, 9.09, 9.11, 9.11),
l(9.04, 9.08, 9.05, 9.25, 9.28, 9.27),
l(9, 9.01, 9, 9.2, 9.23, 9.2),
l(8.99, 8.99, 8.98, 9.18, 9.2, 9.19),
l(8.93, 8.97, 8.97, 9.18, 9.2, 9.18)
).asValue()
set("type", "surface")
}
}
plot.makeFile()
} But it is not quite elegant. Some design and testing are needed here and we would welcome external contributions. Also, we need to check if those plots are in the core JS bundle. Because we want to load different bundles separately in the future to minimize the JS size. Currently |
That's more than enough for now, thank you! While it is not fully supported, I really appreciate that you have thoughtfully provided a way to do things the original library allows without waiting for the wrapper code to be updated every time or falling back to string concatenation of some sort :) |
I actually will leave this open. I personally do not have time right now, but it is not hard to implement, so it should wait for a hero. |
Are there any plans to support 3d charts?
If they are not officially supported yet are there any "not perfect but kinda works" examples or workarounds of how to use them with the current library? :) Perhaps substituting Trace with my own raw json or something like that.
Thank you in advance!
PS. I can see some types commented in TraceType enum surface, scatter3d etc.
The text was updated successfully, but these errors were encountered: