PRO Contour_Hole ; Set up the data and colors for a filled contour plot. Device, Decomposed=0 levels = 12 data = LoadData(2) x = Scale_Vector(Findgen(41), 0, 100) y = Scale_Vector(Findgen(41), 0, 50) white = GetColor('White', 1) black = GetColor('Black', 2) LoadCT, 33, NColors=12, Bottom=3 ; Draw the first plot. Let IDL select contour intervals by ; using the NLEVELS keyword. Window, 0, Title='IDL Selected Contour Intervals', XSize=300, YSize=400 Contour, data, x, y, /Fill, C_Colors=Indgen(levels)+3, Background=1, $ NLevels=levels, Position=[0.1, 0.1, 0.9, 0.80], Color=black Contour, data, x, y, /Overplot, NLevels=levels, /Follow, Color=black ColorBar, NColors=12, Bottom=3, Divisions=6, $ Range=[Min(data), Max(data)], Format='(I4)', $ Position = [0.1, 0.9, 0.9, 0.95], Color=black ; Draw the second plot. This time calculate your own contour ; intervals and set the "zeroth" interval to the minimum value ; of the data. Window, 1, Title='User Specifed Contour Intervals', XSize=300, YSize=400 step = (Max(data) - Min(data)) / levels userLevels = IndGen(levels) * step + Min(data) print, userlevels Contour, data, x, y, /Fill, C_Colors=Indgen(levels)+3, Background=1, $ Levels=userLevels, Position=[0.1, 0.1, 0.9, 0.80], Color=black Contour, data, x, y, /Overplot, Levels=userLevels, /Follow, Color=black ColorBar, NColors=12, Bottom=3, Divisions=6, $ Range=[Min(data), Max(data)], Format='(I4)', $ Position = [0.1, 0.9, 0.9, 0.95], Color=black END