Quoting the MetaPost manual, chapter 3 (The MetaPost Workflow):
If your graphics contain text labels, you might want to set variable prologues to 3 to make sure the correct fonts are used under all possible circumstances.
So, I added the following as the first line of your code:
prologues := 3;
What it essentially does here is embed the font into the output, which grows to ~20 Kbytes as a result.
After that, I can see the picture with labels in GSview. Without that, it complains like Error: /undefined in cmr10
. Perhaps okular also had trouble locating fonts.