I donโt think there is an easy way to do this, since the positions of the labels are hardcoded - look at the end
body(pie) if (!is.na(lab) && nzchar(lab)) { lines(c(1, 1.05) * P$x, c(1, 1.05) * P$y) text(1.1 * P$x, 1.1 * P$y, labels[i], xpd = TRUE, adj = ifelse(P$x < 0, 1, 0), ...) } } title(main = main, ...) invisible(NULL) }
But you can overwrite this section of the program
# create a new pie function to save overwriting original newpie <- pie
Thus, it seems that the work is small, but it gets there, and you will need to work a bit on the corner or formatting the text.
(maybe there is an argument for this)
source share