KNIME new Visualizations Nodes

In the scatterplot, I am now getting this error, and cannot do anything in there. This is on the exact same dataset I was viewing earlier with the Scatterplot node. I have discovered deleting the node and adding a fresh one solves the problem. (KNIME 4.6, MacOS 12.4).

java.lang.NullPointerException

org.knime.base.views.node.scatterplot.data.ScatterPlotInitialDataImpl.(ScatterPlotInitialDataImpl.java:23)
org.knime.base.views.node.BaseViewsNodeView.lambda$3(BaseViewsNodeView.java:122)
org.knime.core.webui.data.json.impl.JsonInitialDataServiceImpl.getInitialDataObject(JsonInitialDataServiceImpl.java:97)
org.knime.core.webui.data.json.JsonInitialDataService.getInitialData(JsonInitialDataService.java:78)
org.knime.core.webui.node.AbstractNodeUIManager.callTextInitialDataService(AbstractNodeUIManager.java:152)
org.knime.gateway.api.entity.NodeUIExtensionEnt.(NodeUIExtensionEnt.java:105)
org.knime.gateway.api.entity.NodeViewEnt.(NodeViewEnt.java:105)
org.knime.gateway.api.entity.NodeViewEnt.create(NodeViewEnt.java:82)
org.knime.gateway.api.entity.NodeViewEntUtil.createNodeViewEntAndEventSources(NodeViewEntUtil.java:105)
org.knime.js.cef.nodeview.CEFNodeView.initializePageBuilder(CEFNodeView.java:247)
org.knime.js.cef.nodeview.CEFNodeView.lambda$7(CEFNodeView.java:337)
org.knime.js.cef.nodeview.CEFNodeView$2.completed(CEFNodeView.java:349)
com.equo.chromium.swt.internal.Chromium.lambda$6(Chromium.java:832)
org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4220)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3880)
org.knime.js.cef.nodeview.CEFNodeView.blockUntilDisposed(CEFNodeView.java:381)
org.knime.js.cef.nodeview.CEFNodeView.callOpenView(CEFNodeView.java:214)
org.knime.core.node.AbstractNodeView.openView(AbstractNodeView.java:197)
org.knime.core.node.Node.invokeOpenView(Node.java:2665)
org.knime.workbench.editor2.actions.OpenNodeViewAction.openNodeView(OpenNodeViewAction.java:143)
org.knime.workbench.editor2.editparts.NodeContainerEditPart.openNodeDialog(NodeContainerEditPart.java:858)
org.knime.workbench.editor2.editparts.NodeContainerEditPart.openNodeDialog(NodeContainerEditPart.java:845)
org.knime.workbench.editor2.editparts.NodeContainerEditPart.openDialog(NodeContainerEditPart.java:834)
org.knime.workbench.editor2.editparts.NodeContainerEditPart.performRequest(NodeContainerEditPart.java:398)
org.eclipse.gef.tools.SelectEditPartTracker.performOpen(SelectEditPartTracker.java:194)
org.eclipse.gef.tools.SelectEditPartTracker.handleDoubleClick(SelectEditPartTracker.java:137)
org.knime.workbench.editor2.WorkflowSelectionDragEditPartsTracker.handleDoubleClick(WorkflowSelectionDragEditPartsTracker.java:126)
org.eclipse.gef.tools.AbstractTool.mouseDoubleClick(AbstractTool.java:1069)
org.eclipse.gef.tools.SelectionTool.mouseDoubleClick(SelectionTool.java:527)
org.eclipse.gef.EditDomain.mouseDoubleClick(EditDomain.java:231)
org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseDoubleClicked(DomainEventDispatcher.java:291)
org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDoubleClick(LightweightSystem.java:518)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:200)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:4479)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4265)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3878)
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
org.knime.product.rcp.KNIMEApplication.start(KNIMEApplication.java:183)
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.base/java.lang.reflect.Method.invoke(Unknown Source)
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
org.eclipse.equinox.launcher.Main.run(Main.java:1461)

1 Like

Hey richards,
thanks for your feedback. The Table View is in its beginning at the moment. We are planning to add more renderers and support for different formats. Also we are currently already working on adding searching/filtering capabilities to the table.
I will keep this thread updated once we have something to share.
Regarding your second point, that it is only possible to open one view at a time: This limitation is only in place if you open the dialog/preview. If you right click the node and open the actual view it is still possible to open multiple views.
Regarding the error: Is it possible for you to share the workflow you used to produce this error?

Greetings and thanks,
Daniel

3 Likes

Are there any plans to add mouseover popups, showing one or more column’s data? It would be quite useful to be able to show an identifier and some key data when mousing over. If (one of) the selected column is an image, it would be great if it could be displayed!

Hey rsherhod,

which view are you talking about? I assume the table view? What exactly do you mean with the popups showing the columns data? If we are talking about the table view we are currently working on getting images displayed.

Greetings,
Daniel

I actually meant the plots: XY, bar plots, line plots etc.

I’ve always thought that it would be useful to be able to mouseover a point on the plot, and have a popup display one or more values from the corresponding row. Something like the hover tooltips that bokeh and similar libraries can produce would be very useful for interactive interpretation of the data. If the row includes an image column, being able to pick that as the tooltip would be especially cool.

Showing images in the table view is important too, of course. Particularly asynchronous rendering of CellTypes that have an assigned renderer (e.g. RDKit for SMILES).

3 Likes

Got it, thanks for the explanation. Makes a lot of sense and I will add a feature request for this.

Greetings,
Daniel

1 Like

If you’d like to learn more about KNIME’s new visualization nodes (or ask questions), please join the webinar we’re hosting for a quick overview and Q&A on recently released KNIME Analytics Platform 4.6.0 & KNIME Server 4.15!

July 14, 2022
5:00 PM - 6:00 PM UTC +2 Berlin
10:00 AM - 11:00AM -5 Chicago

Register for the webinar and get highlights on the latest version:

  • A preview of the sleeker UI
  • Better Python scripting
  • New visualization nodes
  • An improved Snowflake integration
  • …and more!

Followed by a summary of the community feedback and a Q&A with our experts, @carstenhaubold and @roberto_cadili. Come prepared with your questions and get a sneak peek into what’s coming next.

Register here

2 Likes

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Hey,

thank you all for the valuable feedback and ideas.
With KNIME 4.7.0 we were able to publish the following 7 additional view nodes:

  • Boxplot node
  • Density plot
  • Heatmap node
  • Histogram node
  • Pie chart
  • Stacked area chart
  • Statistics view

To see them in action either try them out yourself or see the What’s New Page.
We also did various improvements to the four existing views and especially focused on the Table View node. This node now offers the following new features:

  • A search field to search in the entire table or individual filters to filter in specific columns
    Filtering

  • Resize the columns to make them as wide as you need them
    ColumnResizing

  • Lazy loading and virtual scrolling to enable to scroll through huge tables
    LazyLoading

  • A compact mode, for cases where space is a limiting factor
    CompactMode

@richards99 chemical structures should now be supported and if you chose the RDKit 2D depiction as default renderer in the KNIME preferences you will see the molecules in the table view. We are currently working on a proper renderer selection in the table itself and are also aware of the problem that the images are small at the moment.

As with the last views, we are very eager to hear what you think about the new improvements and the new views in general.

Greetings,
Daniel

4 Likes

Hi Daniel,
is there a possibility in Scatter Plot (Labs) to feed the Node with variables for the reference line?
and furthermore will it be possible in the future to add not only horizontal reference lines, but also vertical?
Sincerely
Flo

Hey @Flo1124,
this is possible to som extend. You can change existing reference lines via flow variables, but it is currently not possible to add new or delete existing reference lines with flow variables. (see attached screenshot)

yes, we will improve this feature in the future, but there is currently no timeline for it.

Greetings,
Daniel

2 Likes

Hi Daniel,

I am just “playing” with the new KNIME Table View. One minor comment in comparison to the Javascript Table View is that the new node does not support HTML (which is a pity in one of my workflows as I am structuring a test description through HTML with line breaks, bold fonts…).

It would be very nice and even more important if the node would be a KNIME Labs Table Edit node …
Any thoughts from your side in this direction?

One general comment/question to the new Views… on the “long” run styling via a css stylesheet (if well documented) or even something more convenient (eg. change font size…) would be really appreciated…

Thank you very much for considering and thank you very much for the constant effort of the KNIME team!

Best regards,

Jürgen

Hey @Juergen,

great to hear that you are trying out the new table view. We are currently working on enabling HTML content for the new table view and it should soon land in the nightly :slight_smile:.

The Table Editor is on our list, but it will take some more thinking and time to get this right.

For the styling we are thinking about going into a theme based direction. Which means that you can set up label sizes for all your views without fiddling around with custom css styles. What is your use case for custom styling?

Greetings,
Daniel

1 Like

Hi Daniel,

we are using the different Lab views (like LinePlot and ScatterPlots) -due to there nice interactive features- in online meetings where we share screens. As I am ggplot addicted I prefer (e.g.) custom colours (like the company brand colors) and “readably sized” labels (better larger than too small), which are not easily accessible in the Views by now (??).

Theming is a nice idea, my “favorite blueprint” would be ggplot with (e.g.) theme_bw (base_size = …). For me the set of a base_size which will influence every label size would be great.

Best regards,

Jürgen

Hey @Juergen,

thanks for the additional insights. I am not too familiar with ggplot but I like the idea of a base_size.
What exactly is it that you want to color with your brand colors? If it is the actual data points than I have good news. We are currently working on enabling coloring for your series in the new plots.

Greetings,
Daniel

Hi @DanielBog ,

that is exactly what I meant… very good news.

The same holds true for the “shapes” of a scatterplot point.

And together with the themes (and through this the adaptation of the text font size) the plots are getting more and more useful for our work.

Thank you very much for the team’s effort!

Best regards,

Jürgen

1 Like

Hi visualization-experts!

I am wondering if it is possible to change the size and position of the values displayed in the pie chart. I noticed that I can decide whether the text should be displayed outside or inside the chart, but I can’t see any options for the size or position in general. The reason for my question is that sometimes the text overlaps, making it unreadable (examples below).


Thanks in advance!
Cheers,
Rebecca

Hey @rebeccasjoeblom,

this is currently not possible with the native node, but we recently released the “Generic ECharts” node. With this node you can customise every part of the chart. You can even make use of the AI to help you create the desired result.

Customising our native nodes further is still something we have to implement.

Greetings,
Daniel

2 Likes

Hi @DanielBog,

Thanks so much for the fast reply! I will try it out :slightly_smiling_face:

Cheers,
Rebecca

2 Likes