First we load the data file
data = ReadList["data_smp.out", Number, RecordLists -> True]; I know that I should provide some sample data but in this case the structure of the list is too complicated that I cannot easily replicate them with random distributions. The complete data file can be obtained here data.
Then we use some criteria in order to define different colors to data
getColor[m_List, i_Integer] := Module[{s = m[[i, 6]]}, Which[s == 11, Green, s == 12, Darker[Green], s == 21, Yellow, s == 22, Orange, s == 31, Pink, s == 32, Lighter[Magenta], s == 99, Brown, s == 1, White, s == 2, Red, s == -1, White]]; and then we plot them
data2 = Table[{PointSize[0.005], getColor[data, i], Point[{data[[i, 1]], data[[i, 2]]}]}, {i, 1, Length[data]}]; g1 = Graphics[data2]; This is the output

Then some additional coloring
valrange = {-2, 4}; data[[All, 3]] = Rescale[Log10[data[[All, 3]]], valrange]; colfunc[x_, cf_] := If[(x[[5]] == 0 || x[[5]] == 1 || x[[5]] == 2), White, ColorData[cf][1 - x[[3]]]]; and the second plot
g2 = Graphics[{PointSize[0.005], Point[#[[1 ;; 2]], VertexColors -> colfunc[#, "DeepSeaColors"]] & /@ data}]; 
Now if I want to combine these two plots with Show like
Show[g1, g2] only the second plot (g2) is plotted. Why? Any ideas?


Show[g2, g1]I should expect that g1 will be plotted above g2. Am I right? How can I achieve this superposition? $\endgroup$