One of the defining aspects of President Trump’s tenure in office is his willingness — his eagerness, really — to grab his phone and tweet something insulting about someone he doesn’t like. During the 2016 campaign, there was a lot of analysis about how and if Trump might temper his Twitter disparagements as president. We now know what was obvious then: Trump wasn’t going to change. He claims to strike out at opponents only when they attack him first, but that’s clearly not the case.

In recent days, Trump has been abusing former White House communications director Anthony Scaramucci on Twitter. This is an example of Trump counterpunching; Scaramucci has now decided that he fervently opposes Trump and is spending a substantial amount of time on cable news letting the world know about his conversion. If there’s one way to get Trump’s attention, that’s it, and so the president has decided to inform everyone that Scaramucci is a “nut job” and “unstable.”

Trump’s used “nut job” before, most notably when describing former FBI director James B. Comey to Russian diplomats in the Oval Office. It made me curious: How often does Trump repeat his favorite insults?

The answer is: an awful lot.

So much, in fact, that when I decided to try to illustrate those insults visually, I had to limit myself to Trump’s disparagements on Twitter. There’s one benefit to that; namely, that Twitter is where most of his insults live. I picked out more than 30 of the president’s favorite insults and, using the New York Times’ list of Twitter insults and the comprehensive database at Trump Twitter Archive, I tallied how often he has used each term and the people or organizations to which it was applied.

In the abstract, the results look like this.

That’s 32 insults applied 1,693 times to 245 different targets. You can see how the targets (colored circles) are categorized; the width of the lines between circles indicates how many times a particular target was the subject of a particular insult. The most common insult-target pairing? “Fake” applied to the media, which Trump has done more than 300 times.

Let’s throw in the insults themselves. The size of the words correlates to how often the insult has been used. Thanks to Trump’s enthusiasm for using the term to describe the press, “fake” stands out. He has used it 444 times in total.

The rest of the top five insults? “Failed” (or “failing”), which he has applied on 205 occasions, mostly to the Times. “Dishonest” (or “dishonesty”), used 149 times. (Some observers will no doubt consider it ironic that Trump has referred to 35 other entities as dishonest.) Then “weak,” used 94 times, followed by “lying” or “liar,” which he has used 68 times.

So let’s look at Scaramucci as an example. The president has labeled his former communications director a “dope" (also applied to 22 others) and “crazy” (19 others) in addition to “nut job.” “Nut job” is a fairly uncommon descriptor, which Trump has also used to disparage conservative commentators Glenn Beck and Ann Coulter.

Enough about Scaramucci. Let’s get to the important stuff: What Trump has said about The Washington Post. He has referred to this paper as “fake,” “crazy,” “dishonest,” “phony” and “disgraced” (or “disgraceful”).

Nearly all of the entities he’s referred to as fake are media organizations. The exceptions are Democrats (as a general group), former vice president Joe Biden and Sen. Richard Blumenthal (D-Conn.).

Oh, and his former attorney, Michael Cohen, one of 10 former staffers Trump has insulted on Twitter. The other eight (besides Scaramucci) are Barbara Res (who worked with him at the Trump Organization), Federal Reserve Chair Jerome H. Powell, former attorney general Jeff Sessions, Omarosa Manigault Newman, former secretary of state Rex Tillerson, former campaign staffer Sam Nunberg, his former ghostwriter Tony Schwartz and former campaign adviser George Papadopoulos.

Trump’s disparaged the Times a lot more than he has The Post, which we aren’t taking personally. He’s called the nation’s second-best paper “dumb” (or a “dummy”), a “dope” (or “dopey”), “irrelevant," “clueless” (or “having no clue”), “stupid,” “failed,” “fake,” “sad," “dying,” “failing,” “disgraced,” “nasty,” “phony” and “weak.” Bear in mind that this is just the paper as a whole. He has also disparaged several individual Times reporters, including Jonathan Martin and Maggie Haberman.

He’s disparaged the Times using more insults than he has for almost any other entity. The winner in that regard? His 2016 presidential opponent, Hillary Clinton. He has used 15 different terms to insult Clinton.

That Trump has described the Times as both “fake” and “weak” is interesting; the latter insult is generally used to describe political opponents. In many cases, Trump used the term during the 2018 midterms to disparage Democratic candidates as weak on particular issues. He also used it to put down his 2016 Republican primary opponents, including his current BFF Sen. Lindsey O. Graham (R-S.C.). (He has also called Graham versions of “disgraced,” “dumb," “failed,” “lying” and “sad.”)

At the bottom, you’ll notice another interesting inclusion. No, not the department store Macy’s, which he got mad at in 2015 when it opposed his language on immigration. I’m referring to the group of elected leaders whom Trump has targeted recently known as “the Squad”: Reps. Ayanna Pressley (D-Mass.), Rashida Tlaib (D-Mich.), Ilhan Omar (D-Minn.) and Alexandria Ocasio-Cortez (D-N.Y.).

Trump has focused on four descriptors to describe them either individually or as a group: “disgraced,” “weak,” “anti-Semitic” and “racist.”

As I was preparing this article Tuesday, Trump again disparaged Tlaib on Twitter as an anti-Semite. That insult isn’t included on the above diagrams.

As was to be expected when embarking on a documentation of Trump’s Twitter insults, the charts in this article were outdated before they even went public.