Hello colleague, i really like the idea of splitting the instruction to plot to a what-where-how style. So an interface like plot(my_data[:,3:6],picture2, "marker with red outline"). Actually i'm testing some ideas to define "marker with red outline" in some sort of domain specific language - like the matlab "go" for green rings or "mx" for magenta crosses but with more options on the colour and other parts of the style. For the 3D-OpenGL case this will specify something for the shader, for 2D it's easier, but could be consistent.
For your differentiation of 0D,1D,2D etc i would add in the 2D case also areas you want to paint.