1 Title: Source Code for Scatterplot Figure in "The Categories Were Made for Man to Make Predictions"
4 Requires [NumPy](http://www.numpy.org/), [Matplotlib](https://matplotlib.org/).
10 import matplotlib.pyplot as plot
11 from matplotlib.colors import ListedColormap
12 from mpl_toolkits.mplot3d import Axes3D
13 from numpy import array
14 from numpy.random import normal
18 def __init__(self, a, b, c):
23 def trait_vector(self):
24 return [self.a, self.b, self.c]
27 def generate_cis_male(cls):
34 def generate_cis_female(cls):
41 def generate_agp(cls):
50 p1 = [Person.generate_cis_female().trait_vector()
51 for _ in range(group_size)]
52 p2 = [Person.generate_agp().trait_vector()
53 for _ in range(group_size)]
54 p3 = [Person.generate_cis_male().trait_vector()
55 for _ in range(group_size)]
57 p = array(p1 + p2 + p3)
59 target = list(functools.reduce(itertools.chain,
60 [itertools.repeat(i, group_size)
61 for i in range(1, 4)]))
63 figure = plot.figure(figsize=(6, 5))
66 axes.scatter(p[:, 0], p[:, 1], p[:, 2],
68 cmap=ListedColormap(["#FF1493", "#B000B0", "#1E90FF"]))
72 if __name__ == "__main__":