I don’t usually gripe too much about Tableau functionality, so when I do it is usually because I have had to deal with the problem over and over and over – through many years.
This complaint is a very small issue that frustrates me every time I create graphics that have certain marks that need to be annotated. I think the problem would be easy for Tableau to fix, so I wish they would just do it!
Let’s say that you want to label a few locations on a map and add some custom annotations to the locations, like I have done in Figure 1.
In this figure, I have five monitoring locations shown and I have taken a couple of minutes to add the yellow highlighted mark annotations. For each one of these (north, south, east, west and central), I had to independently set the formatting for these blocks by changing the shading, box color and corner roundness, as well as re-sizing each box. These operations are repetitive and boring.
To solve part 1 of my issue, I just wish Tableau would recognize the formatting changes applied to the first box and immediately apply those formats to the other annotations. The user experience could be improved by Tableau having automated annotation style settings.
The real problem, however, is what happens next. As I looked at the map, I realized that I wanted to include the station name in the mark label. To do this, I dropped the station ID onto the label pill and the map changed to what is shown in Figure 2. The simple operation of adding another field to the mark label causes the annotations to disappear. In other words, the few minutes of work I just did, was discarded by Tableau.
I understand why this happens. By adding the second field to the label shelf, Tableau automatically adds that field to the tooltip shelf and the automatically-generated annotation list. In doing so, the annotations that I painstakingly added are wiped clean – gone – kaput, unless I hit the back button to recover them.
In a recent blog post, the brilliant VizPainter showed us a nice technique for creating dynamic mark annotations. When you read this post, you realize that the way Tableau is programmed controls how mark annotations are displayed. Joshua spent three blog posts uncovering the behaviors that he describes in those articles. He shows us how we can use a parameter to create a set of annotations that changes as different data is displayed. As clever as his techniques are for allowing us to do these cool things with dynamic annotations, I still have a basic problem with how they work.
My Views On How Annotations Should Work
If a user takes the time to create customized annotations for a series of marks like I have done in Figure 1, there should be no reason that the annotations should be discarded when a simple change is made to a mark label, for example. Changing a label does not fundamentally change the marks themselves and it should not change the annotations associated with them.
In this case, the location on the map is still the location I want to annotate. I want the annotation to remain on the map, no matter how I choose to label the mark. Other software packages I have used through the years like AutoCad, ArcGIS, and others would not turn off annotations just because something else changes in the properties of a mark. This behavior does not make sense to me at all.
To resolve the problem, I had to re-create the mark annotations for the second time, as shown in Figure 3, once I added the second field to the mark label.
I proclaim that the annotations placed on a mark should not be dependent upon the state of the mark labels. You should be able to change the mark labels any way you would like without affecting whether the annotations are shown on not. There is no reason to make a user add custom annotations for each state of the mark labeling. This software micro-management feature is functionally broken and needs to be corrected by Tableau. Tableau should eliminate the assumption that if a mark label changes, the annotations should change, too.
As always, there might be a way to control this behavior that I am not familiar with. Even if there is a way, the fact remains that whatever method someone shows me, the way that Tableau is currently configured is not intuitive. If it were intuitive, I would have already figured it out!
Tableau gives us annotations for a reason. Annotations are great for helping explain our work. We shouldn’t have to worry about the order of operations we completed before we decide to use an annotation. This current constraint forces you to think ahead to exactly how you want your map to look before you add annotations. This means that your annotations will always have to be the last operation you do to get the map the way you want it. Whenever software requires its users to follow a particular order of operations, it isn’t programmed correctly.
If I create an annotation or set of annotations, I want the software program to keep them until I delete them. Better yet, I wish Tableau would give us a toggle button that allows us to either show or not show the annotation sets on any given worksheet or dashboard. In other words, give us the capability that Joshua showed in his blog post without the need to create parameters to control the annotation sets. Make annotations inherently more useful by expanding their functionality and giving us proper controls on how they are formatted and how they are displayed per worksheet. That would be a great addition to Tableau.