Implementing Custom Visualizations in TIBCO Spotfire


There are a variety of methods for incorporating custom visualizations into TIBCO Spotfire. These methods all vary greatly in terms of functionality and interactivity as well as in difficulty to develop. In this post, we will look at the different methods.

Static Output Visualization
One of the simpler options for a custom visualization is to provide a static output graphic which is displayed either in a Text Area or as a Custom Visualization.  In earlier tips we have shown how to do this with Google Charts , Yahoo Finance, and also as output from S+ or R.

 



The benefits of this approach are that you do not need to use the full C# SDK  to implement the solution (as that is very time consuming), and you have access to many different visualization options. The downside is that the solution is a static graphic which does not provide the same interaction as a built-in visualization.  In some cases, using the static graphic as a details visualization, as shown in this post, reduces the need for full interactivity.           

Configure Existing Visualization
Many requirements for a custom visualization can actually be handled by configuring a built-in visualization. It could be something like a Map Chart which we configure to show the human body, a subway map, a Wafer Map, or something similar, as shown in this post.  

 

It could also be something like turning a Bar Chart into a Histogram, or a Scatter Plot into a Bubble Chart. You can create these visualizations by just modifying the properties on a built-in visualization type. This requires no programming or the use of the SDK. In situations where you will use this type of plot a lot, you can even wrap this using the SDK to create a new visualization entry in the menu structure. This is called a configured visualization and details are available here.


Yet another option which falls into this category is to add images into a Table visualization as discussed in an earlier tip.

 

Integrate Third Party Visualization Component
If the requirements call for a fully interactive visualization, similar to the ones built into Spotfire, it will require you to use the SDK to build a custom visualization. This process  is more involved, but details are available on our STN website on how to implement this.  If you have access to an already existing chart component or widget, and it is .NET/C# compatible, you can create a custom extension which integrates this component.  

Two such visualizations components are Chart FX and Zed Graph. When integrating these components, you get all the built in features they offer including any marking, properties dialogs, etc… and you can hook it up to the Spotfire data model to support marking and filtering.

 


Build Visualization from scratch
The final possibility is to build a custom visualization from scratch using the .NET drawing capabilities. This could be a graphical visualization or a text-based visualization.  This is the most involved and complex solution, but has been done in many situations. In fact, the Spotfire Network Visualization add-on was built using this design pattern as well as visualizations created by some of our partners.


 

The following table reviews the various methods we have discussed.

 

 

Summary

Implementing custom visualizations can be done in many different ways, from a fairly static output graphic, which is actually what many requests really are, to a fully-fledged, built-in, “Spotfire plot”, with all the related interactivity.

Usually requirements for custom visualizations involve specific context, which means that they most likely do not need to be generalized the same as a built-in visualization is. The first couple options listed in the table above are good approaches to solve the requirements for these very specific visualization types. If the requirement is more for a platform visualization that can be used in a variety of contexts, the last two options would be the best approach.

If you are interested in implementing any of the visualizations listed in this tip, consider taking our  Authoring Bootcamp, our Advanced Extension training course,  or hiring Professional Services.