Table of contents
In this post, we’ll explain how bad Abaqus colormaps can affect the interpretation of results.
The visualization process is meant to help people understand the relationships between numbers and colors. If we look at the geographic map, we’d naturally assume that blue represents a body of water and that green represents land. We might look at the legend to check the altitude, but generally, it can be roughly estimated.
Now let’s imagine a situation in which we want to analyze a temperature variation in a heated frying pan. The simulation results might look something like the images below:
The rainbow colormapping doesn’t help us to understand that we’re looking at temperature distribution. We’re much more likely to assume that when looking at the black-body radiation colormap.
We naturally intuit temperature this way. The rainbow map is based on the colors of light at different wavelengths which have nothing to do with human perception of colors.
Each color in the rainbow palette is very bright and easily distracts us from important region information. Another issue is caused by the color range: it isn’t uniform. It’s easy to spot that the green color hides some artifacts that can be revealed with different palettes.
While we all try to reduce the amount of printing we do, sometimes it’s necessary. Perhaps it’s more likely we’ll print something in grayscale nowadays. So, let’s see what happens to a rainbow colormap in this scenario.
The rainbow map becomes much less distinguishable, while the radiation color map is still easily read.
It’s also worth mentioning that the rainbow colormap is not suitable for people with color vision deficiency. According to color-blindness.com, red-green color vision affects about 8% of all men and 0.5% of all women. The website has a simulator that lets us check what those people can read from the rainbow map and the outcomes are extremely poor and misleading.
Fortunately, the scientific community realized that color deficiency is a fundamental problem and the Cividis colormap was created. This colormap enables near-identical visual-data interpretation for people with and without color deficiency.
There’s really no “one size fits all” solution for colormapping. The colormap should be chosen based on the type of variable we want to plot. The general rules are:
An example of a bad colormap can show the negative values in bright colors. This can be very misleading, as we naturally assign bright colors with high, positive values.
The colormaps can be divided into three categories – sequential, diverging, and qualitative palettes. I found the first two especially useful for Abaqus plots:
Sequential palettes – they are suitable for plots of values that follow a certain order (ascending or descending). In this scenario, the warm, bright color would show a high value as opposed to dark and cool colors showing lower values. The variable which fit into that category is for example von Mises stress.
Diverging palettes – they are suitable for making plots with data that has a zero-like central value. In this case, we are interested in differentiating values that lie above, or below, the reference value. The variable which fit into that category is for example Max Principal stress.
Does this mean that the diverging colormap cannot be used to show von Mises stress plots? Not necessarily. The sequential maps can be more appropriate for that, but the diverging types can be more aesthetically pleasing. They also split the value range into low, mid, high regions which can be handy.
Now that we know there are good reasons to use various colormaps, we need to understand how to use or create new palettes. By default, a few colormaps are available from the Spectrums feature in the visualization tree.
As always, this isn’t Abaqus has to offer! Users can create their own colormaps with very little effort and there are two ways of doing this. The first way is to do it manually in the Contour Options as shown below:
The other way is to use a Python command to create a colormap. You can just copy the function below, paste it into Abaqus Python API and voilà! The colormap should be available under the spectrum tree.
session.Spectrum(name=”RdYlBu”, colors =(‘#313695’, ‘#4575b4’, ‘#74add1’, ‘#abd9e9’, ‘#e0f3f8’, ‘#fee090’, ‘#fdae61’, ‘#f46d43’, ‘#d73027’, ‘#a50026’))
The rainbow colormap isn’t an all-purpose colormap. But, now you know how to define a new map in Abaqus. So, where all those nice custom, user colormaps? Well, you can find some at the matplotlib library – which is now a part of Abaqus Python.
Why not check out our Simulation training courses to learn more about Abaqus, Python, Simulia and more?