John Kane
2021-Aug-13 13:21 UTC
[R] ggplot: add percentage for each element in legend and remove tick mark
Would you supply some sample data please? A handy way to supply sample data is to use the dput() function. See ?dput. If you have a very large data set then something like head(dput(myfile), 100) will likely supply enough data for us to work with. On Thu, 12 Aug 2021 at 11:45, Kai Yang via R-help <r-help at r-project.org> wrote:> > Hello List, > I use the following code to generate a donut plot. > # Compute percentages > eth$fraction = eth$individuals / sum(eth$individuals) > # Compute the cumulative percentages (top of each rectangle) > eth$ymax = cumsum(eth$fraction) > # Compute the bottom of each rectangle > eth$ymin = c(0, head(eth$ymax, n=-1)) > # Make the plot using percentage > ggplot(eth, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=ethnicity)) + > geom_rect() + > coord_polar(theta="y") + > xlim(c(2, 4) > ) > > I want to improve the plot for two thing: > 1. the legend: I need to add percentage (eth$fraction * 100 and then add %) for each of element. > 2. remove all number (tick mark ?) around the plot > Please help > Thank you, > Kai > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- John Kane Kingston ON Canada
Kai Yang
2021-Aug-13 21:48 UTC
[R] ggplot: add percentage for each element in legend and remove tick mark
Hello John, I put my testing data below. I'm not sure how to use dupt() function. would you please give me an example? Thanks, Kai | ethnicity | individuals | | Caucasian | 36062 | | Ashkenazi Jewish | 4309 | | Multiple | 3193 | | Hispanic | 2113 | | Asian. not specified | 1538 | | Chinese | 1031 | | African | 643 | | Unknown | 510 | | Filipino | 222 | | Japanese | 129 | | Native American | 116 | | Indian | 111 | | Pacific Islander | 23 | On Friday, August 13, 2021, 06:21:29 AM PDT, John Kane <jrkrideau at gmail.com> wrote: Would you supply some sample data please? A handy way to supply sample data is to use the dput() function. See ?dput.? If you have a very large data set then something like head(dput(myfile), 100) will likely supply enough data for us to work with. On Thu, 12 Aug 2021 at 11:45, Kai Yang via R-help <r-help at r-project.org> wrote:> > Hello List, > I use the following code to generate a donut plot. > # Compute percentages > eth$fraction = eth$individuals / sum(eth$individuals) > # Compute the cumulative percentages (top of each rectangle) > eth$ymax = cumsum(eth$fraction) > # Compute the bottom of each rectangle > eth$ymin = c(0, head(eth$ymax, n=-1)) > # Make the plot using percentage > ggplot(eth, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=ethnicity)) + >? geom_rect() + >? coord_polar(theta="y")? + >? xlim(c(2, 4) >? ) > > I want to improve the plot for two thing: > 1. the legend: I need to add percentage (eth$fraction * 100 and then add %) for each of element. > 2. remove all number (tick mark ?) around the plot > Please help > Thank you, > Kai > >? ? ? ? [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- John Kane Kingston ON Canada [[alternative HTML version deleted]]