Possibly bug in legend

legend(r'u_0')

This is a typical error. legend expects you to pass a sequence of
strings, not a string (otherwise it interprets the string as a
sequence). This has nothing to do with subscripting... But we should
warn on this because it is such a common mistake. What you want is

legend((r'u_0',))

JDH