Michael Friendly's Avatar

Michael Friendly

@datavisfriendly.bsky.social

ASA Fellow; #rstats developer of graphical methods for categorical and multivariate data; #datavis history of data visualization; #historicaldatavis; Milestones project Web: www.datavis.ca GitHub: github.com/friendly

5,824 Followers  |  423 Following  |  1,764 Posts  |  Joined: 20.07.2023  |  2.2769

Latest posts by datavisfriendly.bsky.social on Bluesky

Preview
Flashback: Your Weekly History Quiz, Nov. 22, 2025 Can you sort 8 historical events?

Flashback for Nov. 22, 2025

28 points
๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ

Play here:
www.nytimes.com/interactive/...

23.11.2025 15:58 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Multivariate Visualization of Painters Style

#rstats #dataviz #multivariate
A new vignette for the {candisc} package describes
multivariate visualization methods using data on aesthetic ratings of classical painters.
friendly.github.io/candisc/arti...

22.11.2025 03:10 โ€” ๐Ÿ‘ 7    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

It's hard to remember how many times I copy/pasted some biblio info a document and pandoc literally screamed at me.

21.11.2025 17:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Data sets in the heplots package

#rstats Some packages include many datasets to illustrate the methods they provide, like my {heplots} and
{vcdExtra} pkgs.
I devised a scheme, using `@concept` tags to classify them according to the methods.
Perhaps this is useful to others

I describe what I did in this vignette: bit.ly/4oalgBd

21.11.2025 17:29 โ€” ๐Ÿ‘ 8    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

My grad courses are once a week, 3 hrs, 12 weeks, but 2 for student presentations. Always feel that's too short.

21.11.2025 01:54 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Reminder that Lancet Commission on Public Policy and Health in the Trump Era estimated that roughly 40% of the COVID-19 deaths in the U.S. during 2020 (tens of thousands of deaths) could have been averted

21.11.2025 01:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Minard's famous illustration of the fate of Napoleon's Grand Armee in the 1815 March on Moscow. A flow map showing the army size shrinking across the map, much more on the retreat, shown in black

Minard's famous illustration of the fate of Napoleon's Grand Armee in the 1815 March on Moscow. A flow map showing the army size shrinking across the map, much more on the retreat, shown in black

Post image

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐Ÿ“…Nov 20, 1869 Charles Joseph Minard published his iconic flow map graphic of Napoleon's March on Moscow.

Some called it best graphic ever produced, but EJ Marey put it best:
"Defies the pen of the historian in its brutal eloquence"
No known portrait of CJ, only .sig

21.11.2025 01:18 โ€” ๐Ÿ‘ 23    ๐Ÿ” 7    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
In the Shadow of Edmund Halley:ย Solar Eclipses, Citizen Science, and Qualitative Dataviz, Nightingale On April 8, 2024, a total solar eclipse crossed North America from the Pacific Coast of Mexico to the island of Newfoundland, off the eastern coast of...

๐Ÿ“Š How do you visualize a shared experience of awe and wonder?

Callie Dean discusses how her modern-day citizen science project, gathering qualitative data from the 2024 total solar eclipse, created a collective viewpoint using lenticular prints.

nightingaledvs.com/in-the-shado...

19.11.2025 16:13 โ€” ๐Ÿ‘ 3    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

A good idea โœ”๏ธ

19.11.2025 03:39 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

#dataviz This kind of plot, showing the distribution on the logit scale, and also on the probability scale is a great idea!! ๐Ÿ˜

19.11.2025 03:13 โ€” ๐Ÿ‘ 8    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Plot of the rate of change of wage rates on the Y axis vs. unemployment. The inverse relation suggest a tradeoff

Plot of the rate of change of wage rates on the Y axis vs. unemployment. The inverse relation suggest a tradeoff

The cyclic relationship becomes clearer when the points are connected in time order

The cyclic relationship becomes clearer when the points are connected in time order

Photo of Alban William Housego Phillips

Photo of Alban William Housego Phillips

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐ŸŽ‚Nov 18, 1914 Alban William Housego Phillips born in Te Rehunga, New Zealand ๐Ÿ‡ณ๐Ÿ‡ฟ

1958: The "Phillips Curve,'' a scatterplot of inflation vs. unemployment over time shows a strong inverse relation -> important developments in macroeconomic theory

19.11.2025 01:56 โ€” ๐Ÿ‘ 6    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Camera created by Daguerre. An image enters thru the lens system and is projected upside-down on a glass plate at the back.

Camera created by Daguerre. An image enters thru the lens system and is projected upside-down on a glass plate at the back.

Black/white photo of Louis Jacques Mande Daguerre

Black/white photo of Louis Jacques Mande Daguerre

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐ŸŽ‚Nov 18, 1787 Louis Jacques Mandรฉ Daguerre born in Cormeilles-en-Parisis, France ๐Ÿ‡ซ๐Ÿ‡ท

1839: Invention of the first practical photographic process, using coated plates of metal and glass (daguerrotype)

19.11.2025 01:06 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Thomas de Colmar's arithmometer (French: arithmomรจtre),the first digital mechanical calculator strong and reliable enough to be used daily in an office environment. This calculator could add and subtract two numbers directly and perform long multiplications and divisions effectively by using a movable accumulator for the result.

Thomas de Colmar's arithmometer (French: arithmomรจtre),the first digital mechanical calculator strong and reliable enough to be used daily in an office environment. This calculator could add and subtract two numbers directly and perform long multiplications and divisions effectively by using a movable accumulator for the result.

Later version of the Arithmometer, under the management of Louis Payen. Many improvements were introduced, such as an incline mechanism, a removable top, cursors and result windows that were easier to read, and a faster re-zeroing mechanism.

Later version of the Arithmometer, under the management of Louis Payen. Many improvements were introduced, such as an incline mechanism, a removable top, cursors and result windows that were easier to read, and a faster re-zeroing mechanism.

Color portrait of Charles Xavier Thomas de Colmar

Color portrait of Charles Xavier Thomas de Colmar

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐Ÿ“…Nov 18, 1832 Thomas de Colmar patents the Arithmometer, the 1st commercially successful mechanical calculator, robust enough for daily office use. It could add, subtract, do multiplication & long division, and first mass-produced mechanical calculator in the world

19.11.2025 00:34 โ€” ๐Ÿ‘ 6    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Graph illustrating Fechner's Law, S = k log I. It plots I= intensity of a stimulus on the horizontal axis vs. perceived Stimulus sensation on the vertical.

Graph illustrating Fechner's Law, S = k log I. It plots I= intensity of a stimulus on the horizontal axis vs. perceived Stimulus sensation on the vertical.

Photo of Gustav Fechner, sitting, holding a book

Photo of Gustav Fechner, sitting, holding a book

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐Ÿ’€Nov 18, 1887 Gustav Theodor Fechner died in Leipzig, Germany ๐Ÿ‡ฉ๐Ÿ‡ช

1850: Fechner's Law: the subjective sensation is proportional to the log of stimulus intensity. This is a core idea behind accuracy of visual encoding of data -- eg, length > angle > area > color

19.11.2025 00:21 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
7 sets Venn Diagram

#dataviz Very cool interactive - 7 sets Venn Diagram
128 color combinations from mixing 7 colors

moebio.com/research/sev...

18.11.2025 14:35 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Thx for pointing this out. I'll mention it in the {colorize} README.

18.11.2025 02:47 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐Ÿ“…Nov 17, 1921 Ronald Alymer Fisher read his Royal Society paper on mathematical foundations of statistics,
arguably the most influential article on that subject in the twentieth century.

๐Ÿ”— see Stigler's paper: Fisher in 1921 bit.ly/3UL53Vl

18.11.2025 01:44 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Screenshot showing usage of usethis::browse_package(), usethis::browse_cran(), and usethis::browse_github().

Screenshot showing usage of usethis::browse_package(), usethis::browse_cran(), and usethis::browse_github().

I'm reminded of how handy the usethis::browse_*() functions are and thought I'd remind people they exist. Choose from a menu of links or go straight to CRAN or GitHub. #rstats

17.11.2025 17:54 โ€” ๐Ÿ‘ 52    ๐Ÿ” 18    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

AHH! Thx, Ben

17.11.2025 03:38 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

library(utf8ify)
cat(paste(
utf8_text_bolditalic("utf8ify"),
utf8_text_bold("is soooo"),
utf8_text_gothic("COOL")
))

๐’–๐’•๐’‡8๐’Š๐’‡๐’š ๐—ถ๐˜€ ๐˜€๐—ผ๐—ผ๐—ผ๐—ผ ๐•ฎ๐•บ๐•บ๐•ท

17.11.2025 03:34 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Are there any #rstats tools to make it easier to format
names into a dataset into parts of a string for a model formula?

I often do things like this and copy to my script:

> names(iris)[1:4] |> paste(collapse = " + ")
[1] "Sepal.Length + Sepal.Width + Petal.Length + Petal.Width"

17.11.2025 02:57 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 0
Post image

Here's one use example from my book

17.11.2025 02:44 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Amazing where he gets all those old #maps, #diagrams and images.

17.11.2025 02:29 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Histogram of  the distribution of the determinants of all possible 3 x 3 matrices that can be formed using the numbers 1:9 in some permutation

Histogram of the distribution of the determinants of all possible 3 x 3 matrices that can be formed using the numbers 1:9 in some permutation

#rstats #math An interesting math/stats puzzle:
What is the distribution of the determinants of all possible 3 x 3 matrices that can be formed using the numbers 1:9 in some permutation? (9! = 362,880)
It turns out to be surprisingly symmetric, with some peculiar
gaps.

Code at: bit.ly/4qZD4BT

17.11.2025 02:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Render Text in Color for Markdown/Quarto Documents The colorize package provides some simple functions for printing text in color in markdown or Quarto documents, to be rendered as HTML or LaTeX. This is useful when writing about the use of colors in ...

#rstats
๐ŸŒˆ๐ŸŒˆ Do you ever need/want to print text in color in markdown/Quarto documents, so you can easily refer to red points or blue lines in a graph?
A start on this is in the {colorize} ๐Ÿ“ฆ, friendly.github.io/colorize/

17.11.2025 01:53 โ€” ๐Ÿ‘ 11    ๐Ÿ” 4    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 0

#rstats Well worth reading.
Programming languages for statistical computing and graphics show provide the shortest path between an idea in your head and result on your screen or in your paper

14.11.2025 03:58 โ€” ๐Ÿ‘ 6    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
View of historical events on a logarithmic timeline going into the past, so that events closer some origin (the present) get more visual space

View of historical events on a logarithmic timeline going into the past, so that events closer some origin (the present) get more visual space

Photo of Heinz Von Foerster

Photo of Heinz Von Foerster

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐ŸŽ‚Nov 13, 1911 Heinz Von Foerster born in Vienna, Italy ๐Ÿ‡ฎ๐Ÿ‡น

1930: Timeline of historical events drawn on a logarithmic scale, allowing enormous range & changing the default linear view of history for visibility of more recent events

14.11.2025 02:33 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
tmap vs.ย ggplot2 for mapping โ€“ Geospatial Stuff For me at least the choice between ggplot2 and tmap is an ongoing question. Here are my latest thoughts on the subject (with code).

tmap or ggplot2 for maps? ๐Ÿ—บ๏ธ

David Oโ€™Sullivan breaks down the trade-offs in a blog post.

URL: dosull.github.io/posts/2024-1...

#RStats #RSpatial #Maps #tmap #ggplot2

12.11.2025 14:02 โ€” ๐Ÿ‘ 37    ๐Ÿ” 18    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Video thumbnail

#TodayinHistory #dataviz #OTD ๐Ÿ“Š
๐Ÿ“…Nov 12, 1733 Abraham De Moivre published his limit theorem to the binomial distribution
'Approximatio ad Summam Terminorum Binomii in Seriem expansi'

13.11.2025 01:22 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Someone sitting on a toilet, straining to have a shit, with visions of code in his head. The caption is: GIT PUSH, so satisfying

Someone sitting on a toilet, straining to have a shit, with visions of code in his head. The caption is: GIT PUSH, so satisfying

While working on my book, I was diverted for work on 3 #rstats packages where I needed to make some graphs better. This #gitmeme sort of sums it up, when I finished each one.

13.11.2025 01:03 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@datavisfriendly is following 20 prominent accounts