deephaven / deephaven-core

Deephaven Community Core
Other
257 stars 80 forks source link

Groovy ohlcPlotBy never renders #4709

Closed chipkent closed 1 year ago

chipkent commented 1 year ago

Groovy ohlcPlotBy never renders. It has a spinner.

This was observed on v0.29 by @elijahpetty.

image
import static io.deephaven.csv.CsvTools.readCsv
import static io.deephaven.api.agg.Aggregation.AggAvg

cryptoTrades = readCsv("https://media.githubusercontent.com/media/deephaven/examples/main/CryptoCurrencyHistory/CSV/CryptoTrades_20210922.csv")

agg_list = [
    AggLast("Close = Price"),\
    AggFirst("Open = Price"),\
    AggMax("High = Price"),\
    AggMin("Low = Price"),
]

btcBin = cryptoTrades.where(FilterOr.of(Filter.from("Instrument = `BTC/USD`", "Instrument = `ETH/USD`")))
    .update("TimestampBin = lowerBin(Timestamp, HOUR)")
tOHLC = btcBin.aggBy(agg_list, "Instrument", "TimestampBin")

plotByOHLC = ohlcPlotBy("Instrument", tOHLC, "TimestampBin", "Open", "High", "Low", "Close", "Instrument").show()

btcBin2 = cryptoTrades.where("Instrument in `BTC/USD`, `ETH/USD`")
    .update("TimestampBin = lowerBin(Timestamp, HOUR)")
tOHLC2 = btcBin2.aggBy(agg_list, "Instrument", "TimestampBin")

plotByOHLC2 = ohlcPlotBy("Instrument", tOHLC2, "TimestampBin", "Open", "High", "Low", "Close", "Instrument").show()

Browser logs:

LogProxy.js:73 [@deephaven/jsapi-bootstrap.ApiBootstrap] API bootstrapped from http://localhost:10000/jsapi/dh-core.js
LogProxy.js:73 [@deephaven/app-utils.PluginUtils] Plugins loaded: Map(0)
LogProxy.js:73 [@deephaven/app-utils.PluginUtils] Using LoginPlugin @deephaven/auth-plugins.AuthPluginPsk
LogProxy.js:73 [DownloadServiceWorkerUtils] Registering service worker on  URLhash: ""host: "localhost:10000"hostname: "localhost"href: "http://localhost:10000/ide/download/serviceWorker.js"origin: "http://localhost:10000"password: ""pathname: "/ide/download/serviceWorker.js"port: "10000"protocol: "http:"search: ""searchParams: URLSearchParams {size: 0}username: ""[[Prototype]]: URL ServiceWorkerRegistration
LogProxy.js:73 [SessionUtils] Getting console types...
LogProxy.js:73 [SessionUtils] Available types: Array(1)
LogProxy.js:73 [SessionUtils] Starting session with type groovy
LogProxy.js:73 [SessionUtils] Console session established Object
4LogProxy.js:87 [IrisGridPanel] Timeout after 10000ms
isEnabled.console.error @ LogProxy.js:87
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
2LogProxy.js:80 Ignoring unreasonably small pixel count:  0
isEnabled.console.warn @ LogProxy.js:80
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:73  WARN [suggest] did IGNORE invalid completion item from undefined Object
LogProxy.js:80 TableViewportSubscription.close called on subscription that's already done.
isEnabled.console.warn @ LogProxy.js:80
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:80 TableViewportSubscription.close called on subscription that's already done.
isEnabled.console.warn @ LogProxy.js:80
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
4LogProxy.js:80 Ignoring unreasonably small pixel count:  0
isEnabled.console.warn @ LogProxy.js:80
DevTools failed to load source map: Could not load content for chrome-extension://ipikiaejjblmdopojhpejjmbedhlibno/dist/non_app/content_scripts/source_listener/index.js.map: System error: net::ERR_BLOCKED_BY_CLIENT
DevTools failed to load source map: Could not load content for chrome-extension://ipikiaejjblmdopojhpejjmbedhlibno/dist/non_app/content_scripts/preview/index.js.map: System error: net::ERR_BLOCKED_BY_CLIENT
2LogProxy.js:80 TableViewportSubscription.close called on subscription that's already done.
isEnabled.console.warn @ LogProxy.js:80
warn @ dh-core.js:32177
close_4 @ dh-core.js:24886
closeSubscription @ IrisGridTableModelTemplate.js:931
stopListening @ IrisGridTableModelTemplate.js:361
removeEventListener @ IrisGridModel.js:38
removeListeners @ IrisGridProxyModel.js:280
stopListening @ IrisGridProxyModel.js:265
removeEventListener @ IrisGridModel.js:38
stopListening @ IrisGrid.js:1438
componentWillUnmount @ IrisGrid.js:760
aq @ react-dom.production.min.js:224
Ote @ react-dom.production.min.js:230
nxe @ react-dom.production.min.js:256
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
Gp @ react-dom.production.min.js:252
ok @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
cte @ react-dom.production.min.js:123
Bc @ react-dom.production.min.js:122
Ld @ react-dom.production.min.js:237
BN @ react-dom.production.min.js:170
(anonymous) @ DashboardLayout.js:161
emit @ EventEmitter.js:70
addReactChild @ LayoutManager.js:281
_render @ ReactComponentHandler.js:63
emit @ EventEmitter.js:70
_$init @ Component.js:49
callDownwards @ AbstractContentItem.js:93
_$normalizeContentItem @ LayoutManager.js:683
addChild @ Stack.js:101
openComponent @ LayoutUtils.js:408
(anonymous) @ useDashboardPanel.js:65
emit @ EventEmitter.js:70
openWidget @ ConsolePanel.js:255
handleOpenObject @ ConsolePanel.js:211
(anonymous) @ Console.js:316
openUpdatedItems @ Console.js:316
handleCommandResult @ Console.js:247
(anonymous) @ Console.js:212
Promise.then (async)
handleCommandStarted @ Console.js:211
$lambda$3 @ dh-core.js:8152
onInvoke_12 @ dh-core.js:8862
lambda @ dh-core.js:173
$fireEvent_0 @ dh-core.js:8128
runCode @ dh-core.js:33161
handleCommandSubmit @ Console.js:688
processCommand @ ConsoleInput.js:378
setConsoleText @ ConsoleInput.js:95
addCommand @ Console.js:723
addCommand @ ConsolePanel.js:261
(anonymous) @ ConsolePlugin.js:70
emit @ EventEmitter.js:70
runCommand @ NotebookPanel.js:989
handleRunAll @ NotebookPanel.js:848
R1e @ react-dom.production.min.js:52
D1e @ react-dom.production.min.js:52
L1e @ react-dom.production.min.js:53
CH @ react-dom.production.min.js:100
Zee @ react-dom.production.min.js:101
(anonymous) @ react-dom.production.min.js:113
Tee @ react-dom.production.min.js:292
O1e @ react-dom.production.min.js:50
tte @ react-dom.production.min.js:105
_N @ react-dom.production.min.js:75
wN @ react-dom.production.min.js:74
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
kee @ react-dom.production.min.js:292
X1e @ react-dom.production.min.js:73
Show 29 more frames
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
LogProxy.js:73 [TableSaver] found active service worker
2LogProxy.js:80 Ignoring unreasonably small pixel count:  0
isEnabled.console.warn @ LogProxy.js:80
warn @ dh-core.js:32177
range_1 @ dh-core.js:29271
updateLayoutAxes @ ChartUtils.js:988
updateFigureAxes @ ChartUtils.js:821
updateAxisPositions @ FigureChartModel.js:414
Va @ FigureChartModel.js:130
(anonymous) @ ChartModelFactory.js:79
Eo @ ChartModelFactory.js:1
l @ ChartModelFactory.js:2
(anonymous) @ ChartModelFactory.js:2
(anonymous) @ ChartModelFactory.js:2
makeModel @ ChartModelFactory.js:80
(anonymous) @ ChartPlugin.js:58
Td @ ChartPlugin.js:6
l @ ChartPlugin.js:7
Promise.then (async)
Td @ ChartPlugin.js:6
l @ ChartPlugin.js:7
(anonymous) @ ChartPlugin.js:7
(anonymous) @ ChartPlugin.js:7
nE @ ChartPlugin.js:17
makeModel @ ChartPlugin.js:87
initModel @ ChartPanel.js:242
componentDidMount @ ChartPanel.js:168
Qbe @ react-dom.production.min.js:219
nxe @ react-dom.production.min.js:259
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
Gp @ react-dom.production.min.js:252
ok @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
cte @ react-dom.production.min.js:123
Bc @ react-dom.production.min.js:122
Ld @ react-dom.production.min.js:237
BN @ react-dom.production.min.js:170
(anonymous) @ DashboardLayout.js:161
emit @ EventEmitter.js:70
addReactChild @ LayoutManager.js:281
_render @ ReactComponentHandler.js:63
emit @ EventEmitter.js:70
_$init @ Component.js:49
callDownwards @ AbstractContentItem.js:93
_$normalizeContentItem @ LayoutManager.js:683
addChild @ Stack.js:101
openComponent @ LayoutUtils.js:412
(anonymous) @ useDashboardPanel.js:65
emit @ EventEmitter.js:70
openWidget @ ConsolePanel.js:255
handleOpenObject @ ConsolePanel.js:211
(anonymous) @ Console.js:316
openUpdatedItems @ Console.js:316
handleCommandResult @ Console.js:247
(anonymous) @ Console.js:212
Promise.then (async)
handleCommandStarted @ Console.js:211
$lambda$3 @ dh-core.js:8152
onInvoke_12 @ dh-core.js:8862
lambda @ dh-core.js:173
$fireEvent_0 @ dh-core.js:8128
runCode @ dh-core.js:33161
handleCommandSubmit @ Console.js:688
processCommand @ ConsoleInput.js:378
setConsoleText @ ConsoleInput.js:95
addCommand @ Console.js:723
addCommand @ ConsolePanel.js:261
(anonymous) @ ConsolePlugin.js:70
emit @ EventEmitter.js:70
runCommand @ NotebookPanel.js:989
handleRunAll @ NotebookPanel.js:848
R1e @ react-dom.production.min.js:52
D1e @ react-dom.production.min.js:52
L1e @ react-dom.production.min.js:53
CH @ react-dom.production.min.js:100
Zee @ react-dom.production.min.js:101
(anonymous) @ react-dom.production.min.js:113
Tee @ react-dom.production.min.js:292
O1e @ react-dom.production.min.js:50
tte @ react-dom.production.min.js:105
_N @ react-dom.production.min.js:75
wN @ react-dom.production.min.js:74
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
kee @ react-dom.production.min.js:292
X1e @ react-dom.production.min.js:73
Show 28 more frames
2LogProxy.js:80 Ignoring unreasonably small pixel count:  0
isEnabled.console.warn @ LogProxy.js:80
warn @ dh-core.js:32177
range_1 @ dh-core.js:29271
updateLayoutAxes @ ChartUtils.js:988
updateFigureAxes @ ChartUtils.js:821
updateAxisPositions @ FigureChartModel.js:414
setDimensions @ FigureChartModel.js:371
updateModelDimensions @ Chart.js:412
componentDidMount @ Chart.js:145
Qbe @ react-dom.production.min.js:219
nxe @ react-dom.production.min.js:259
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
Gp @ react-dom.production.min.js:252
ok @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
cte @ react-dom.production.min.js:123
Bc @ react-dom.production.min.js:122
Ld @ react-dom.production.min.js:237
enqueueSetState @ react-dom.production.min.js:133
Ng.setState @ react.production.min.js:12
handleLoadSuccess @ ChartPanel.js:360
Promise.then (async)
initModel @ ChartPanel.js:244
componentDidMount @ ChartPanel.js:168
Qbe @ react-dom.production.min.js:219
nxe @ react-dom.production.min.js:259
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
Gp @ react-dom.production.min.js:252
ok @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
cte @ react-dom.production.min.js:123
Bc @ react-dom.production.min.js:122
Ld @ react-dom.production.min.js:237
BN @ react-dom.production.min.js:170
(anonymous) @ DashboardLayout.js:161
emit @ EventEmitter.js:70
addReactChild @ LayoutManager.js:281
_render @ ReactComponentHandler.js:63
emit @ EventEmitter.js:70
_$init @ Component.js:49
callDownwards @ AbstractContentItem.js:93
_$normalizeContentItem @ LayoutManager.js:683
addChild @ Stack.js:101
openComponent @ LayoutUtils.js:412
(anonymous) @ useDashboardPanel.js:65
emit @ EventEmitter.js:70
openWidget @ ConsolePanel.js:255
handleOpenObject @ ConsolePanel.js:211
(anonymous) @ Console.js:316
openUpdatedItems @ Console.js:316
handleCommandResult @ Console.js:247
(anonymous) @ Console.js:212
Promise.then (async)
handleCommandStarted @ Console.js:211
$lambda$3 @ dh-core.js:8152
onInvoke_12 @ dh-core.js:8862
lambda @ dh-core.js:173
$fireEvent_0 @ dh-core.js:8128
runCode @ dh-core.js:33161
handleCommandSubmit @ Console.js:688
processCommand @ ConsoleInput.js:378
setConsoleText @ ConsoleInput.js:95
addCommand @ Console.js:723
addCommand @ ConsolePanel.js:261
(anonymous) @ ConsolePlugin.js:70
emit @ EventEmitter.js:70
runCommand @ NotebookPanel.js:989
handleRunAll @ NotebookPanel.js:848
R1e @ react-dom.production.min.js:52
D1e @ react-dom.production.min.js:52
L1e @ react-dom.production.min.js:53
CH @ react-dom.production.min.js:100
Zee @ react-dom.production.min.js:101
(anonymous) @ react-dom.production.min.js:113
Tee @ react-dom.production.min.js:292
O1e @ react-dom.production.min.js:50
tte @ react-dom.production.min.js:105
_N @ react-dom.production.min.js:75
wN @ react-dom.production.min.js:74
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
kee @ react-dom.production.min.js:292
X1e @ react-dom.production.min.js:73
Show 42 more frames
2LogProxy.js:80 Ignoring unreasonably small pixel count:  0
isEnabled.console.warn @ LogProxy.js:80
warn @ dh-core.js:32177
range_1 @ dh-core.js:29271
updateLayoutAxes @ ChartUtils.js:988
updateFigureAxes @ ChartUtils.js:821
updateAxisPositions @ FigureChartModel.js:414
Va @ FigureChartModel.js:130
(anonymous) @ ChartModelFactory.js:79
Eo @ ChartModelFactory.js:1
l @ ChartModelFactory.js:2
(anonymous) @ ChartModelFactory.js:2
(anonymous) @ ChartModelFactory.js:2
makeModel @ ChartModelFactory.js:80
(anonymous) @ ChartPlugin.js:58
Td @ ChartPlugin.js:6
l @ ChartPlugin.js:7
Promise.then (async)
Td @ ChartPlugin.js:6
l @ ChartPlugin.js:7
(anonymous) @ ChartPlugin.js:7
(anonymous) @ ChartPlugin.js:7
nE @ ChartPlugin.js:17
makeModel @ ChartPlugin.js:87
initModel @ ChartPanel.js:242
componentDidMount @ ChartPanel.js:168
Qbe @ react-dom.production.min.js:219
nxe @ react-dom.production.min.js:259
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
Gp @ react-dom.production.min.js:252
ok @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
cte @ react-dom.production.min.js:123
Bc @ react-dom.production.min.js:122
Ld @ react-dom.production.min.js:237
BN @ react-dom.production.min.js:170
(anonymous) @ DashboardLayout.js:161
emit @ EventEmitter.js:70
addReactChild @ LayoutManager.js:281
_render @ ReactComponentHandler.js:63
emit @ EventEmitter.js:70
_$init @ Component.js:49
callDownwards @ AbstractContentItem.js:93
_$normalizeContentItem @ LayoutManager.js:683
addChild @ Stack.js:101
openComponent @ LayoutUtils.js:412
(anonymous) @ useDashboardPanel.js:65
emit @ EventEmitter.js:70
openWidget @ ConsolePanel.js:255
handleOpenObject @ ConsolePanel.js:211
(anonymous) @ Console.js:316
openUpdatedItems @ Console.js:316
handleCommandResult @ Console.js:247
(anonymous) @ Console.js:212
Promise.then (async)
handleCommandStarted @ Console.js:211
$lambda$3 @ dh-core.js:8152
onInvoke_12 @ dh-core.js:8862
lambda @ dh-core.js:173
$fireEvent_0 @ dh-core.js:8128
runCode @ dh-core.js:33161
handleCommandSubmit @ Console.js:688
processCommand @ ConsoleInput.js:378
setConsoleText @ ConsoleInput.js:95
addCommand @ Console.js:723
addCommand @ ConsolePanel.js:261
(anonymous) @ ConsolePlugin.js:70
emit @ EventEmitter.js:70
runCommand @ NotebookPanel.js:989
handleRunAll @ NotebookPanel.js:848
R1e @ react-dom.production.min.js:52
D1e @ react-dom.production.min.js:52
L1e @ react-dom.production.min.js:53
CH @ react-dom.production.min.js:100
Zee @ react-dom.production.min.js:101
(anonymous) @ react-dom.production.min.js:113
Tee @ react-dom.production.min.js:292
O1e @ react-dom.production.min.js:50
tte @ react-dom.production.min.js:105
_N @ react-dom.production.min.js:75
wN @ react-dom.production.min.js:74
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
kee @ react-dom.production.min.js:292
X1e @ react-dom.production.min.js:73
Show 28 more frames
2LogProxy.js:80 Ignoring unreasonably small pixel count:  0
isEnabled.console.warn @ LogProxy.js:80
warn @ dh-core.js:32177
range_1 @ dh-core.js:29271
updateLayoutAxes @ ChartUtils.js:988
updateFigureAxes @ ChartUtils.js:821
updateAxisPositions @ FigureChartModel.js:414
setDimensions @ FigureChartModel.js:371
updateModelDimensions @ Chart.js:412
handlePlotUpdate @ Chart.js:347
value @ factory.js:196
value @ factory.js:181
Si.emit @ events.js:158
t.emit @ events.js:70
(anonymous) @ plot_api.js:1824
Promise.then (async)
Me @ plot_api.js:1823
t.call @ registry.js:217
(anonymous) @ plots.js:95
setTimeout (async)
(anonymous) @ plots.js:79
Re.resize @ plots.js:70
w.props.useResizeHandler.resizeHandler.resizeHandler @ factory.js:210
value @ factory.js:216
(anonymous) @ factory.js:100
Promise.then (async)
value @ factory.js:95
value @ factory.js:119
Qbe @ react-dom.production.min.js:219
nxe @ react-dom.production.min.js:259
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
Gp @ react-dom.production.min.js:252
ok @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
cte @ react-dom.production.min.js:123
Bc @ react-dom.production.min.js:122
Ld @ react-dom.production.min.js:237
enqueueSetState @ react-dom.production.min.js:133
Ng.setState @ react.production.min.js:12
handleLoadSuccess @ ChartPanel.js:360
Promise.then (async)
initModel @ ChartPanel.js:244
componentDidMount @ ChartPanel.js:168
Qbe @ react-dom.production.min.js:219
nxe @ react-dom.production.min.js:259
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
Gp @ react-dom.production.min.js:252
ok @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
cte @ react-dom.production.min.js:123
Bc @ react-dom.production.min.js:122
Ld @ react-dom.production.min.js:237
BN @ react-dom.production.min.js:170
(anonymous) @ DashboardLayout.js:161
emit @ EventEmitter.js:70
addReactChild @ LayoutManager.js:281
_render @ ReactComponentHandler.js:63
emit @ EventEmitter.js:70
_$init @ Component.js:49
callDownwards @ AbstractContentItem.js:93
_$normalizeContentItem @ LayoutManager.js:683
addChild @ Stack.js:101
openComponent @ LayoutUtils.js:412
(anonymous) @ useDashboardPanel.js:65
emit @ EventEmitter.js:70
openWidget @ ConsolePanel.js:255
handleOpenObject @ ConsolePanel.js:211
(anonymous) @ Console.js:316
openUpdatedItems @ Console.js:316
handleCommandResult @ Console.js:247
(anonymous) @ Console.js:212
Promise.then (async)
handleCommandStarted @ Console.js:211
$lambda$3 @ dh-core.js:8152
onInvoke_12 @ dh-core.js:8862
lambda @ dh-core.js:173
$fireEvent_0 @ dh-core.js:8128
runCode @ dh-core.js:33161
handleCommandSubmit @ Console.js:688
processCommand @ ConsoleInput.js:378
setConsoleText @ ConsoleInput.js:95
addCommand @ Console.js:723
addCommand @ ConsolePanel.js:261
(anonymous) @ ConsolePlugin.js:70
emit @ EventEmitter.js:70
runCommand @ NotebookPanel.js:989
handleRunAll @ NotebookPanel.js:848
R1e @ react-dom.production.min.js:52
D1e @ react-dom.production.min.js:52
L1e @ react-dom.production.min.js:53
CH @ react-dom.production.min.js:100
Zee @ react-dom.production.min.js:101
(anonymous) @ react-dom.production.min.js:113
Tee @ react-dom.production.min.js:292
O1e @ react-dom.production.min.js:50
tte @ react-dom.production.min.js:105
_N @ react-dom.production.min.js:75
wN @ react-dom.production.min.js:74
e.unstable_runWithPriority @ scheduler.production.min.js:18
kh @ react-dom.production.min.js:122
kee @ react-dom.production.min.js:292
X1e @ react-dom.production.min.js:73
Show 57 more frames
2LogProxy.js:80 Ignoring unreasonably small pixel count:  0
devonpallison commented 1 year ago

Was able to reproduce in a python console with:

from deephaven.plot.figure import Figure
from deephaven import empty_table

source = empty_table(20).update(["Letter = (i % 2 == 0) ? `A` : `B`", "X = 0.1 * i", "Y = randomDouble(0.0, 5.0)", "High = 10", "Low = 1"])

plot = Figure().plot_xy(series_name="Random numbers", t=source, x="X", y="Y", y_high="High", y_low="Low", by=["Letter"]).show()
mofojed commented 1 year ago

Looks like in JsFigure.updateSubscriptions it's only looking at regular series, but not subscribing to the multiSeries which may also be present on a chart: https://github.com/deephaven/deephaven-core/blob/c708dc6cc4b393109355c5406f9d89d155113580/web/client-api/src/main/java/io/deephaven/web/client/api/widget/plot/JsFigure.java#L378

Actually JsMultiSeries should be creating individual JsSeries and adding them to the chart: https://github.com/deephaven/deephaven-core/blob/c708dc6cc4b393109355c5406f9d89d155113580/web/client-api/src/main/java/io/deephaven/web/client/api/widget/plot/JsMultiSeries.java#L105 And that doesn't seem to be happening.

mofojed commented 1 year ago

A snippet that has more errors bars to test with:

from deephaven.plot.figure import Figure
from deephaven import empty_table

source = empty_table(20).update(["Letter = (i % 2 == 0) ? `A` : `B`", "X = 0.1 * i", "Y = randomDouble(0.0, 5.0)", "High = Y + randomDouble(0.0, 1.0)", "Low = Y - randomDouble(0.0, 1.0)"])

plot = Figure().plot_xy(series_name="Random numbers", t=source, x="X", y="Y", y_high="High", y_low="Low", by=["Letter"]).show()