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, As I mentioned last week, I’m exploring the possibility of holding live, in person, workshops again like I did before the pandemic. If this is something that interests you, please let me know. My thought would be to hold them at an affordable hotel near the Detroit airport (DTW). But, if you would like to host me to teach a workshop, I would be open to that as well. This week, I want to call your attention to a plot that I would not encourage you to make. This comes form “Targeted...

Hey folks! I’m hoping to host two workshops in March and April. The first would be a Zoom-based workshop on the principles of data visualization (I taught a version of this last month). This would be a code-free workshop and would run for about 3 hours. I don’t have a date yet. If you are interested, please reply to this email and let me know if there is a date and time in March that would work best for you. The second would be an in person 3 day workshop taught near the Detroit airport. I...

Hey folks, We had a lot of fun last week with my first workshop on the theory of data visualization! If this is something that you’d be interested in participating in let me know. At this point, I don’t have anything scheduled. So, if you have suggestions for days or times, please let me know This week I have a fun figure to share with you from a paper recently published in Nature Microbiology, titled, “Candida auris skin tropism and antifungal resistance are mediated by carbonic anhydrase...