Вы указали text.width = 1
, что на вашем графике является всей шириной графика. Это будет выглядеть хорошо, если вы уменьшите text.width. Попробуйте
legend("topleft", legend=names(attr(colcode, "table")),
fill=attr(colcode, "palette"), cex=0.6,bg = "white", text.width = 0.1)
Возможно, вам придется уменьшить его еще больше.