There has been a pie-chart circulating the internet of all the pokemon on e621. Things like these get outdated quickly, so I made this pie-chart that updates often! Sources to all images at the bottom.
Building this query is not too much of a pain. There have been a few changes to the pokemon_(species) tag over the years that have caused some problems. In essence, the query will: find all tags involved in the pokemon_(species) implication tree at a depth of 2; remove extra groups and merge different pokemon forms; finally count the number of posts for each tag grouping by pokemon name.
Because I felt it more natural, this chart counts different forms as the same kind. Thankfully, different forms of pokemon are tagged differently. This makes our work easier as all we need to do is transform names like mega_lucario to lucario. A side effect of this though is that images with a Charizard and a Mega Charizard will be counted twice while an image with two Charizards will only counted once. Which kind of skews the data but this is an edge case I do not think happens often (and I do not care about it).
But what about pokemon that do not have base-forms? (e.g. lycanroc or deerling). It seems that most of these base-form-less pokemon do have tags representing the group and these tags are in the same places that most other pokemon are. So it seemed simpler to include all things at this level and filter away actual groups. It mostly works alright, but may need updating to exclude more groups in the future.
Generating the list of artists is not hard either. I could have included the artist in the JSON document, but I never intend to use art not on e621 for this. So instead I just lookup the artists based on the MD5 of each image used.