Published
Edited
Sep 27, 2021
1 star
Insert cell
# Are Pokemon Getting More Powerful Each Generation?

Insert cell
import {vl} from '@vega/vega-lite-api-v5'
Insert cell
import {fromColumns, printTable} from '@uwdata/data-utilities'
Insert cell
d4=require('d3-dsv')
Insert cell
d3 = require("d3-array@>=2.1")
Insert cell
# Are Pokemon Getting More Powerful Each Generation?
</br>
## The Question
Fans of the popular Pokemon game series have been wondering if Pokemon are getting more powerful with each generation. Fans speculate that the game designers are getting lazy and adding more Pokemon each generation and making them more powerful than the old ones, thus making the old Pokemon from older generations less viable for competitive for battling. Fans are claiming that Pokemon in the newer generations have higher stat totals than in past generations thus making them more powerful. For those unfamiliar, stat totals are the sum of all the Pokemon's stats, which include their attack, defense, hp, and so forth. The higher each stat is the better the Pokemon is in battle, so Pokemon with high stat totals are very powerful. Now the question is, is GameFreak, the producers of the Pokemon games, making more Pokemon each generation, and are these pokemon getting more powerful?
</br>
## The Design
The idea behind this visualization is to show that the average stat totals of the Pokemon are increasing from generation to generation. I want to show that the number of Pokemon and the average stat total is increasing for each generation, so I'm using a mark point as the graphical mark and color, size, and position as my visual channels. The x-axis is the generation of the Pokemon and the y-axis is the average stat total. Each circle on the graph represents a group of Pokemon from the generation and the size of the circle corresponds to the number of Pokemon in that generation. The idea is that viewers can tell the difference between each generation by the color of the circle, which is shown in the legend on the right side, and can tell roughly how many pokemon are in said generation by the size of the circle. The position of the circle along the y-axis shows the average stat total of all the pokemon in that generation, the higher it is along the y-axis the higher the average stat total is. I felt a mark point was appropriate as opposed to a bar graph because it allowed me to visually show both the number of pokemon in each generation and the average stat total at the same time.
</br>
## Some Cavets and Downfalls
Like all visualizations, this design has some minor downfalls. For instance, because the number of Pokemon are so similar between some generations sometimes using the size of the circle alone makes it difficult to tell the number of Pokemon in that generation. I handled this downfall by having the number of Pokemon in said generation display when the mouse hovers over the circle. It shows the exact average stat total, the number of Pokemon, and the generation number for each generation. This should clear any confusion about the specifics of each generation.
</br>
## The Conclusion
Looking at the graph you can see there is a trend of the average stat total improving from generation to generation with the exception of generation 2. In generation 4 there was a significant spike in the average stat total, which was likely due to the high number of legendaries, which are known for having very high stat totals. Based on the graph it seems like the fans were right that Pokemon have been getting more powerful since generation one with the exception of generation two. The number of Pokemon for each generation seems to be in a state of flux, so it seems like fans were not correct that more Pokemon are being added to each generation, instead, it looks like it is random whether the generation has more or less Pokemon added than the previous generation.
Insert cell
poke_total=FileAttachment("Pokemon_totals@1.json").json()
Insert cell
vl.markPoint({filled: true, }).title("Are Pokemon Getting More Powerful Each Generation?")
.data(poke_total)
.encode(
vl.x().fieldN("Generation"),
vl.y().fieldQ('Average_Total_Stats').title("Average Stat Total").scale({domain: [410,470]}),
vl.color().fieldN("Generation"),
vl.size().fieldQ('Pokemon_in_Gen').scale({range: [0, 500]}),
vl.opacity().value(0.5),
vl.tooltip(['Generation', 'Average_Total_Stats', 'Pokemon_in_Gen'])
).width(270).height(270)
.render()
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more