Quoted By:
Not sure how OP determined their chart but mine is based on considering the Threat vs. Defeat of each type and then making that each type's value before equating the Offensive and Defensive elements of each type. What I mean by that is this we'll take Dark as an example.
Dark is:
- Good vs. Ghost & Psychic
- Resisted vs. Dark, Fairy & Fighting
- Immunized vs. N/A
- Weak vs. Bug, Fairy & Fighting
- Resists vs. Dark & Ghost
- Immune vs. Psychic
Threat is determined by the number of unique positive matchups (Good, Resists & Immune) matchups, so for Dark it's good matchups are against;
- Ghost
- Psychic
- Dark
So Dark's Threat Score is 3, the Defeat Score is its Bad Matchups (Resisted, Immunized & Weak) which are;
- Dark
- Fairy
- Fighting
- Bug
So Dark's Defeat Score is 4, the scores are ratio'd so high Threat and low Defeat scores approach 50, this gives each type a score between 0 and 100 that is their Weighted Score (basically denotes how valuable that type is to be countered).
From there I subbed in the values of each Type's Weighted Score into their matchups so for Dark it's weighted score was ~52.48.
From this Offense Score was determined by the summation of:
[Good Matchups] - [Resisted Matchups] - 2 x [Immunized Matchups]
For the Defence Score it was the summation of:
[Resists Matchups] - [Weak Matchups] + 2 x [Immune Matchups]
Had to fiddle around to get them on a scale from -100 to 100 but that gave the graph, as you can see unsurprisingly Steel is the best defensively and Ice is the worst this is due to the danger of the types they're strong or weak against. Rock is the best offensively here while Bug is the worst. Most types are centralized around +/- 40 in both axis, this isn't accounting for Abilities, Smogon/VGC appearances, Moves of notable significance etc. but is just looking at the general type matchup.