February 20th, 2012 | 1 Comment
Most of you will probably know the problem of visualizing more than two dimensions of data. In the past we have seen some solutions to this problem by using color maps, or pseudo 3D plots. Here is another solution which will just plot a bunch of lines, but varying their individual colors.
For this we first define the colors we want to use. Here we create a transition from blue to green by varying the hue in equal steps. The values can be easily calculated with GIMP or any other tool that comes with a color chooser.
set style line 2 lc rgb '#0025ad' lt 1 lw 1.5 # --- blue set style line 3 lc rgb '#0042ad' lt 1 lw 1.5 # . set style line 4 lc rgb '#0060ad' lt 1 lw 1.5 # . set style line 5 lc rgb '#007cad' lt 1 lw 1.5 # . set style line 6 lc rgb '#0099ad' lt 1 lw 1.5 # . set style line 7 lc rgb '#00ada4' lt 1 lw 1.5 # . set style line 8 lc rgb '#00ad88' lt 1 lw 1.5 # . set style line 9 lc rgb '#00ad6b' lt 1 lw 1.5 # . set style line 10 lc rgb '#00ad4e' lt 1 lw 1.5 # . set style line 11 lc rgb '#00ad31' lt 1 lw 1.5 # . set style line 12 lc rgb '#00ad14' lt 1 lw 1.5 # . set style line 13 lc rgb '#09ad00' lt 1 lw 1.5 # --- green
Then we plot our data with these colors and get Figure 1 as a result.
plot for [n=2:13] 'itd.txt' u 1:(column(n)*1000) w lines ls n
There the interaural time difference (ITD) between the right and left ear for different frequency channels ranging from 236 Hz to 1296 Hz is shown. As can be seen the ITD varies depending on the incident angle (azimuth angle) of the given sound.
Another possibility to indicate the frequency channels given by the different colors is to add a colorbox to the graph as shown in Figure 2.
To achieve this we have to set the origin and size of the colorbox ourselves. Note, that the notation is not the same as for a rectangle object and uses only the screen coordinates which is a little bit nasty. In addition we have to define our own color palette, as has been discussed already in another colorbox entry. In a last step we add a second phantom plot to our plot command by plotting
1/0 using the
image style in order to get the colorbox drawn onto the graph.
set colorbox user horizontal origin 0.32,0.385 size 0.18,0.035 front set cbrange [236:1296] set cbtics ('236 Hz' 236,'1296 Hz' 1296) offset 0,0.5 scale 0 set palette defined (\ 1 '#0025ad', \ 2 '#0042ad', \ 3 '#0060ad', \ 4 '#007cad', \ 5 '#0099ad', \ 6 '#00ada4', \ 7 '#00ad88', \ 8 '#00ad6b', \ 9 '#00ad4e', \ 10 '#00ad31', \ 11 '#00ad14', \ 12 '#09ad00' \ ) plot for [n=2:13] 'itd.txt' u 1:(column(n)*1000) w lines ls n, \ 1/0 w image
Thanks sir, that was amazing!