Business Intelligence Tools / Developers Corner

IronPython to Turn Labels On and Off a Visualization

  • Would you like to turn labels on and off of a visualization without going into the properties menu?
  • Would you like to learn more about IronPython?

A user contacted me today and asked how they could turn labels on and off without entering the properties dialog.  They wanted to use a text area control to quickly turn labels on and off in a live demo.  I knew IronPython could do the trick, although, I wasn’t quite sure about the code.  A quick TIBCO Community search pulled up this link, and I was able to modify the code shown to meet my user’s needs.

In this post, I’ll show you how to attach IronPython to a property control that toggles labels on and off a scatter plot.  Then, I’ll explain how to modify the code for other types of visualizations.

Detailed Steps

  1. Add a text area and toggle it into Edit mode.
  2. Click the button in the toolbar to add an input property control (data type: string) to the text area called “ToggleLables”.  The case is important.
  3. While still in the Property Control dialog, click the Script button.
  4. Change the radio button to ‘Execute the script selected’.
  5. Click the New button.
  6. Name the script.
  7. Copy and paste the script below.  It will look like this:
  8. Click the Add button to create a parameter called varViz and map it to your visualization.
  9. Next, click Run Script to make sure there are no errors.
  10. Click OK and exit out of the dialogs.

Code Snippet

Copy and paste the script below, but use the screenshot above to mimick the indents.

from Spotfire.Dxp.Application.Visuals import *
from Spotfire.Dxp.Application.Visuals import LabelVisibility
visuals = Document.ActivePageReference.Visuals
varProp =Document.Properties[“ToggleLabels”]

for vis in visuals:
if vis == varViz:
scatterPlot = vis.As[ScatterPlot]()
#print scatterPlot.LabelVisibility

if varProp == “N”:
scatterPlot.LabelVisibility = LabelVisibility.None
if varProp == “Y”:
scatterPlot.LabelVisibility = LabelVisibility.All

With the code provided, you should be able to enter “Y” or “N” into the input property control to turn the labels on and off.

Modification for Other Visualization Types

Now, this particular code example runs with a scatter plot.  However, it’s easy to modify for any visualization type.  Just lookup up the namespace here.  Most are intuitive — ScatterPlot, BarChart, LineChart, etc.  Now, you have a control that will allow you to more easily turn labels on and off.

Spotfire Version

Spotfire 7.12

Feeback

Lastly, I am always looking to improve the content delivered to users and readers.  Please provide feedback on my content, instructions, and explanations in the comments section.  Thanks!  (Julie)

11 thoughts on “IronPython to Turn Labels On and Off a Visualization

  1. Pingback: IronPython to Reset Zoom Sliders - Data Shop Talk

  2. Pingback: IronPython to Sort the Bars of a Combination Chart - Data Shop Talk

  3. Atheer Al Attar Reply

    Thanks for this great dedication Julie, I am wondering if there is a way that we can use a specific column as a label column other than the values itself. Say, we are plotting pressure values as Y-axis but we want to show the Depth as a label while we still have the Y-axis representing the Pressure value.

    • Julie Sebby Post authorReply

      Yes you can do that by simply selecting that column as the Label by column. I assume you are using a scatter plot. Maybe I am not understanding the question. Did you run into a limitation with that code?

  4. Pingback: IronPython to turn panels on and off

  5. Anusha Reply

    Hi Mam,
    Can we save the label orientation in scatter plot by using script or any other way?
    Or label position I have adjusted can we save them in scatter plot? Please respond me as soon as possible.

    • Julie Sebby Post authorReply

      If you reorient labels they should stay that way and appear in the same position the next time the data is marked (or just stay that way if all data has lables). You shouldn’t need a script.

  6. MohamadShahebaz Shaikh Reply

    Julie, is it possible to use a Button to toggle between On & Off instead of Input Field?

    • Julie Sebby Post authorReply

      Yes, that is possible. I don’t have a code snippet to share though.

  7. Jennifer Reply

    Is this Code Snippet intended to toggle line labels or data marker labels on the line chart?
    I have 3 lines in a line chart, and I modified the Code Snippet for a Line Chart. I have markers on all of the lines and want the ability toggle the individual data values on the line on and off. When I executed my LineChart modified code, it toggles the overall line labels but not the markers. How can I get those individual marker labels to toggle as well?

    • Julie Sebby Post authorReply

      Labels. You cannot toggle individual data values on and off. Toggle the markers on and off would be turning the marker layer on and off, which is a different thing. I don’t have an available code snippet for that.

Leave a Reply

Your email address will not be published. Required fields are marked *