Josh Persi's Avatar

Josh Persi

@joshpersi.bsky.social

Data scientist and serial hobbyist πŸ‹οΈπŸ‘¨β€πŸ³πŸͺ΄

21 Followers  |  28 Following  |  18 Posts  |  Joined: 22.01.2025  |  1.7827

Latest posts by joshpersi.bsky.social on Bluesky

Post image

I took this week's #TidyTuesday as an opportunity to try and brush up on modelling and learn tidymodels.org. I have no great modelling insights to share, but in making this graph, I did learn you can set line-ends to be round in geom_line(). Who knew?!

#DataViz #RStats #ggplot2

05.12.2025 01:12 β€” πŸ‘ 13    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
testthat hex

testthat hex

testthat 3.3.0 is here! Major updates for #RStats testing include failure messages for easier debugging, 6 new specific expectations, and the SlowReporter to find your bottlenecks.

Heads Up: R 4.1+ is now required, and old mocking functions are removed.

Read the post: tidyverse.org/blog/2025/11...

24.11.2025 15:34 β€” πŸ‘ 25    πŸ” 6    πŸ’¬ 0    πŸ“Œ 0
Preview
Free "DuckDB in Action" Book Download a free PDF of the DuckDB in Action book published by Manning. The book is rich with technical guidance on data analytics and data engineering with DuckDB and MotherDuck.

The Data Science Learning Community is starting a new book club cohort for DuckDB in Action this Wednesday. Come read and learn with us! All are welcome!

DSLC: dslc.io
DuckDB in Action: motherduck.com/duckdb-book-...

#RStats #python #DataScience #OpenSource

24.11.2025 03:33 β€” πŸ‘ 13    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thank you!

23.11.2025 03:00 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Controlling source and author attributions in your {ggplot2} graphics – Josh Persi

A very long time in the making but I'm eager to share I've made a Quarto blog to talk about all the data science stuff I'm learning! First post is about adding data source and author attributions in ggplot2! Feel free to stop by!

joshpersi.github.io/blog

#RStats #Quarto #DataScience #OpenSource

22.11.2025 15:17 β€” πŸ‘ 13    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Thanks Libby! You were actually one of the reasons I finally got the gumption to join in!

A few Data Science Hangouts back you said something along the lines of 'you don't need to wait to be an expert to start working in the open' and it really clicked with me!

14.11.2025 12:33 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
A line-chart showing the number of deaths to tuberculosis on the y-axis and year, from 2000 to 2023, on the x-axis, with each line being a separate country. Most countries have had low tuberculosis mortality throughout this timespan, but two countries in particular, India and South Africa, have seen significant declines.

A line-chart showing the number of deaths to tuberculosis on the y-axis and year, from 2000 to 2023, on the x-axis, with each line being a separate country. Most countries have had low tuberculosis mortality throughout this timespan, but two countries in particular, India and South Africa, have seen significant declines.

This is my first time joining in on the #TidyTuesday fun. Looking forward to seeing what everyone else is doing with this week's data!

#DataViz #RStats #ggplot2

14.11.2025 05:22 β€” πŸ‘ 17    πŸ” 0    πŸ’¬ 2    πŸ“Œ 1
A map of Canada showing rivers as lines

A map of Canada showing rivers as lines

10 minutes is all we were allowed for day 13 of the #30DayMapChallenge. This took me about 15 minutes, so I'm a little over, but this was a fun way to work under a time constraint and avoid endless tweaking!

#DataViz #RStats #ggplot2

14.11.2025 03:44 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Thank you! I was able to find it and will keep it mind for the future!

Here's the link: www.metrolinx.com/en/about-us/...

12.11.2025 03:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Day 11 is all about minimalism so I made a map with four lines! Perhaps too minimal, but I also couldn't find geographic data on the stations themselves, so maybe it was meant to be 🀷

#30DayMapChallenge #DataViz #RStats #ggplot2

12.11.2025 00:11 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

Happy to! My code is here:

github.com/joshpersi/30...

Data is pulled from the Climate Data Store: cds.climate.copernicus.eu/user-guide

11.11.2025 13:25 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

It's day 10 of the #30DayMapChallenge and the prompt is 'air', so I plotted global air temperature!

#DataViz #RStats #ggplot2

11.11.2025 03:14 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Day 8 of the #30DayMapChallenge and I'm plotting a road network of MontrΓ©al!

#DataViz #RStats #ggplot2

08.11.2025 14:48 β€” πŸ‘ 9    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
A 5x5 grid of maps of France. Each row contains areas shaded with a different number of colours, and each column shows how it looks with different types of colour vision deficiency. None are accessible, except when using only two colours.

A 5x5 grid of maps of France. Each row contains areas shaded with a different number of colours, and each column shows how it looks with different types of colour vision deficiency. None are accessible, except when using only two colours.

For the "accessibility" prompt on day 7 of the #30DayMapChallenge, I decided to investigate how accessible the default #ggplot2 colours are to people with different types of colour vision deficiency (and for different numbers of colours used). 🎨

#RStats #DataViz

07.11.2025 17:38 β€” πŸ‘ 42    πŸ” 8    πŸ’¬ 3    πŸ“Œ 1
A map of Ontario, Canada showing the geographic range of the boreal woodland caribou.

A map of Ontario, Canada showing the geographic range of the boreal woodland caribou.

I learned how little I know about accessibility with day 7 of the #30DayMapChallenge. I tried to use a legible font and added an alt-text, but my colors are low-contrast and I have no idea how far off of best practice I am. If you have resources on making maps accessible, please share them with me!

08.11.2025 00:12 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Day 6 of the #30DayMapChallenge makes things 3D! I took my elevation map from yesterday and made it so with the {rayshader} package.

#DataViz #RStats #ggplot2

07.11.2025 01:08 β€” πŸ‘ 27    πŸ” 3    πŸ’¬ 2    πŸ“Œ 0
Post image

The prompt for day 5 of the #30DayMapChallenge was 'Earth' so I tried to plot the elevation of the Kananaskis Valley!

06.11.2025 04:19 β€” πŸ‘ 15    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image

For Day 3 of the #30DayMapChallenge, I mapped the regions and departments of mainland France!

I learned a lot about {ggrepel} but couldn't quite get the labels to be on the outside of each region. Something to work on for next time!

04.11.2025 19:37 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Day 2 of the #30DayMapChallenge is all about lines.

Here's a single line that's near and dear to my heart β€” the Pacific Crest Trail!

04.11.2025 03:52 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Already a couple days behind! Here's my contribution for the first day of the #30DayMapChallenge.

The HMS Terror and Erebus were abandoned during John Franklin's attempt to find the Northwest Passage.

#DataViz #RStats #ggplot2

03.11.2025 05:05 β€” πŸ‘ 11    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

@joshpersi is following 20 prominent accounts