What do you think of petal plots? How would you make one in R?


Hey folks,

Happy 2026! It’s great to be joining you on another trip around the sun as we explore data visualization, R, and reproducible research. Later today I’ll be hosting a workshop on the design of data visualizations. If you register ASAP, I can probably still get you in. If you missed this one, but would like to be notified when I run this workshop again, reply to this email and let me know!


This week I found a pretty unique plot type in a paper published in the journal Nature

This is Figure 2 from the open access paper titled, “Nutrient requirements of organ-specific metastasis in breast cancer” by Keene Abbott and colleagues. I’m not totally convinced of what I think of this figure yet, so stay tuned for Monday’s critique video. This is what’s called a “petal plot” since each of the wedges coming out of the center looks like a petal of a flower.

I really like how they provide an interpretative key for the plots in panel b. They do the same type of thing in Figure 3. I like this because they are acknowledging that this is a novel plot type and want to help their audience interpret the figures correctly.

I was surprised to see that this figure was made using GraphPad Prism! My institution threatened (once again) to cancel our site license to Prism sending shock waves of panic through campus. Whether they intend to follow through on their threats this time remains to be determined. So, I naturally wondered how I’d go about making this plot in R. FOR FREE!

The most striking part of this figure are the petal plots. I know that a pie chart is a stacked bar plot in polar coordinates. I wondered whether a set of side-by-side bar plots in polar coordinates could get us the petal look. Sure enough it does! We can map the metastasis site (e.g., brain, lung, liver) to the x-axis, the level of depletion to the y-axis, and the gene (e.g., DHODH, GART) to the fill color. The bar plot can be generated using geom_col(). We can circularize the bar plots using coord_radial() to make the petal plots. The coord_radial() function has some arguments we might want to use to adjust the starting point so that the brain data is at 12:00 and bone is at 6:00 (we’ll likely also have to use factors to get the order of the sites, genes, and cell lines correct).

They also include 95% confidence intervals. We can get these as well using geom_errorbar() mapping the lower and upper confidence interval data to the ymin and ymax aesthetics. By default, geom_errorbar() will put a cap at the end of the error bar. To remove the cap and get the appearance seen in this figure, we can set width = 0.

Of course, there isn’t just one petal plot. There are 18. We can match their appearance by using facet_grid() putting the genes across the columns and the cell lines across the rows. There are a variety of arguments in facet_grid() and theme() that we’ll need to play with to get the facet titles positioned correctly.

What do you think of petal plots? They remind me of radar or spider or web charts. Regardless, I look forward to trying to recreate and possibly offer some improvements in next week’s livestream video. If you want to get a head start, you can download the data for free from the Nature website.

Workshops

I'm pleased to be able to offer you one of three recent workshops! With each you'll get access to 18 hours of video content, my code, and other materials. Click the buttons below to learn more

In case you missed it…

Here is a livestream that I published this week that relate to previous content from these newsletters. Enjoy!

video preview

Finally, if you would like to support the Riffomonas project financially, please consider becoming a patron through Patreon! There are multiple tiers and fun gifts for each. By no means do I expect people to become patrons, but if you need to be asked, there you go :)

I’ll talk to you more next week!

Pat

Riffomonas Professional Development

Read more from Riffomonas Professional Development

Hey folks, What a year! This will be the last newsletter of 2025 and so it’s a natural break point to think back on the year and to look forward to the next. Some highlights for me have been recreating a number of panels from the collection of WEB DuBois visualizations on YouTube, recreating plots from the popular media, and modifying and recreating figures from the scientific literature. I guess you could say 2025 was a year of “recreating”! I have found this approach to making...

Hey folks, As 2025 is winding down, I want to encourage you to think about your goals for 2026! For many people designing an effective visualization and then implementing it with the tool of their choice is too much to take on at once. I think this is why many researchers recycle approaches that they see in the literature or that their mentors insist they use. Of course, this perpetuates problematic design practices. What if you could break out of these practices? What if you could tell your...

Hey folks, Did you miss me last week? Friday was the day after the US Thanksgiving holiday and I just couldn’t get everything done that I needed to. The result was an extra livestream on the figure I shared in the previous newsletter. If you haven’t had a chance to watch the three videos (one critique, a livestream, and another livestream) from that figure, I really encourage you to. In the first livestream I made an effort to simplify the panels as a set of facets. Towards the end a viewer...