scala.js - 带有 ScalaJS 的 PlotlyJS:3D 图形/WebGL 的问题
问题描述
使用纯 Javascript 它可以工作:
var data = [{
"z": [[8.83, 8.89, 8.81, 8.87, 8.9, 8.87], [8.89, 8.94, 8.85, 8.94, 8.96, 8.92], ..., [8.93, 8.97, 8.97, 9.18, 9.2, 9.18]],
"type": "surface"
}];
var layout = {};
var TESTER = document.getElementById('example');
Plotly.newPlot(TESTER, data, layout);
对于ScalaJS,它不起作用(它显示:您的浏览器不支持 WebGL)。我采用了生成的代码,唯一的区别是这一行:
$i_plotly$002ejs.newPlot(TESTER, data, layout)
版本也应该相同:
// JavaScript
<script src="https://cdn.plot.ly/plotly-1.47.2.min.js"></script>
// build.sbt
libraryDependencies ++= Seq(ScalablyTyped.P.`plotly_dot_js`)
npmDependencies in Compile ++= Seq("plotly.js" -> "1.47.2")
这里的Scala
代码,我如何使用Plotly
:
import typings.plotlyDotJsLib.plotlyDotJsMod.{Data, Layout, ^ => Plotly}
...
val data: js.Array[Data] = js.Array(
dynLit(
z = js.Array(
js.Array(8.83,8.89,8.81,8.87,8.9,8.87),
...
js.Array(9,9.01,9,9.2,9.23,9.2),
js.Array(8.99,8.99,8.98,9.18,9.2,9.19),
js.Array(8.93,8.97,8.97,9.18,9.2,9.18)
),
`type` = "surface"
).asInstanceOf[Partial[Data]]
)
...
Plotly.newPlot("plotCube", data, layout)
解决方案
推荐阅读
- label - 无法更新标签 - 每次 AOS 重新启动时重置标签
- javascript - 如何让vscode自动完成axios
- woocommerce - 如何在模板中访问 WooCommerce 产品属性变体
- makefile - 为 c/c++ 编写通用 makefile:编译器抱怨“/bin/sh: 1: ./main.o: Exec format error”
- python - 检查浮点数是否在 Python 的字典键中
- python - Python:按数字拆分字符串
- excel - 没有有序数据的匹配函数
- java - 嗨,我正在尝试编写一个 java 程序,它列出了当用户输入空格分隔的名称时人们可以排队的所有可能方式
- javascript - Bootstrap 没有做它应该做的事情
- swift - 如何防止同一窗口的多个实例在 macOS 中打开?