Me sucede lo siguiente:
Es un grafico que ocupa casi toda toda la pantalla (90%x, 90%y, centrado, dejando un borde por los cuatro costados. Lo he probado tanto directamente en una activity como sobre un panel. Siguiendo tu consejo he puesto un boton que su unica mision es llamar a tu propuesta: Canvas.DrawColor(Colors.Transparent).
Mi sorpresa fue grande cuando vi que solo me limpiaba la parte superior del grafico. Para tratar de entender que pasaba cambie el trasparent por blue y vi que por alguna razon que no alcanzo a entender el propio boton limita el area en donde se aplica la instruccion. Solo me pinta de azul lo que hay del boton hacia arriba. Si voy cambiando el boton de lugar me cambia el area de pintado. Aclaro que el boton esta a mitad de altura a la derecha de la pantalla.
He intentado ver otros ejemplos, por ejemplo el de un reloj analogico, y he visto que lo hacen a traves de activity.invalidate que refresca todo pero a mi no me funciona. Creo que por ahi van mis problemas no entiendo muy bien como trabaja esta intruccion (invalidate) ni como se producen las inicializaciones. Que diferencia hay entre por ejemplo:
btn1.initialize("btn1")
btn1.initialize("")
btn1.initialize(activity)