View plot for Node in KNIME_BATCH_APPLICATION

I have been using KNIME 2.7.4 for running analysis algorithm. I have integrated KNIME with our existing application to run in BATCH mode using the below command.

<<KNIME_ROOT_PATH>>\\plugins\\org.eclipse.equinox.launcher_1.2.0.v20110502.jar -application org.knime.product.KNIME_BATCH_APPLICATION -reset -workflowFile=<<Workflow Archive>> -workflow.variable=<<parameter>>,<<value>>,<<DataType>

Knime provide different kinds of plot which I want to use. However I am running the workflow in batch mode. Is there any option in KNIME where I can specify the Node Id and "View" option as a parameter to KNIME_BATCH_APPLICATION.

Would need suggestion or guidance to achieve this functionality.

I don't think that there is a way to convince the batch executor to open the view of a specific node - this would not really fit into the concept of a command line execution.

You don't specify which plot you are interested in. However, some nodes (those with a view output port) allow you write their view into an output file in the workflow. This might allow you to export the desired view into a file and display it somehow else (e.g. in your existing application).

Hope this helps,

Nils

Hi Nils,

Thanks for your reply. If view option is not supported in batch mode, then I have to write data in file and use some charting plugin.

I was planning to use d3js(http://d3js.org/) , do you suggest any better option?

Regards

Biks

Hi Biks,

we already have some node which output images. For example all of the jfreechart nodes.

Using the Image Writer you can save them.

Iris

Hi Iris,

Thanks for your suggestion. This is really helpful.

Regards

Biks

You can also use the Table R View node (not sure of the exact name!) - generate whatever plot you like using R scripting in the node, and then send the resulting image either to a file with the image port writer node or to a report with the image to report node, and then use as you wish.  This way, you can put together just about any plot you can think of (f you are familiar with R!)

Steve

Hi Steve,

Thanks a lot for your suggestion.

Only problem with the solution of saving plot in image is that I cannot do drilldown activity.

Regards

Biks

Hi Biks,

I think what you are looking for might best solved by using KNIME reporting and BIRT Interactive Viewer. (Although I have not tried the latter.)

An alternative might be (soonish) to use my (to be community extension) extension for Vega and probably add an option to open the generated figure in the web browser on execution. That would be easy to add, although it might cause problems when there are multiple Vega Viewers are added or the browser loading the web page is not fast enough (batch execution stops the web server before it served the browser rendering the page). Would you be interested in a solution? Should I add on option like that? (Testing would be welcome.)

Thanks, gabor

Hi Gabor,

Your extension looks interesting. Let me play with it. I will let you know soon.

Regards

Biks

Hi Biks,

I have updated the documentation and finished the option to open the figure (as drawn on canvas) in a browser (as I understood that was your use case). Maybe a separate preference in KNIME would be better to specify the port (currently it is 9999 both for the configuration preview and for the result in the batch execution) of it.

Thanks in advance for the feedback. I hope it will be built as a community contribution soon and people will find it useful.

Kind Regards, gabor

One thread herein was mis-represented... JFreeChart has the capability to enable drilldowns thru the inclusion of tooltips and associated urls:

       JFreeChart chart = ChartFactory.createStackedBarChart(

           chartTitle

           ,axisLabelX
            ,axisLabelY
            ,dcds                        // data
            ,PlotOrientation.VERTICAL    // the plot orientation
            ,doLegend                    // legend
            ,true                        // tooltips
            ,true                       // urls 
        );

That having been said, I would suggest the better direction for development would be to port xml wrappered output (or minimally json output) for consumption thru D3.js       The JFreeChart capabilities have been surpassed, and the learning curve to D3.js functionality is less steep.