From: M. Taylor Saotome-Westlake Date: Thu, 22 Feb 2018 00:20:08 +0000 (-0800) Subject: label axes (albeit uninformatively), explain diagram in a boxed aside X-Git-Url: http://unremediatedgender.space/source?p=Ultimately_Untrue_Thought.git;a=commitdiff_plain;h=45e691e759a1933381f7b1a248d61d024cda529d label axes (albeit uninformatively), explain diagram in a boxed aside --- diff --git a/content/drafts/the-categories-were-made-for-man-to-make-predictions.md b/content/drafts/the-categories-were-made-for-man-to-make-predictions.md index 53c5232..6535c40 100644 --- a/content/drafts/the-categories-were-made-for-man-to-make-predictions.md +++ b/content/drafts/the-categories-were-made-for-man-to-make-predictions.md @@ -94,6 +94,8 @@ What makes this difficult is that—_conditional_ the two-types hypothesis and s genderspace cluster choice + + In less tolerant places and decades, where MtF transsexuals were very rare and had to try very hard to pass as (natal) women out of dire necessity, their impact on the social order and how people think about gender was minimal—there were just too few trans people to make much of a difference. [This is why](/2018/Feb/blegg-mode/) experienced crossdressers often report it being easier to pass in rural or suburban areas rather than cities with a larger LGBT presence—not as a matter of tolerant social attitudes, but as a matter of _base rates_: it's harder to get [clocked](https://www.urbandictionary.com/define.php?term=clocked&defid=4884301) by people who aren't aware that being trans is even a thing.[ref]In [predictive processing](http://slatestarcodex.com/2017/09/05/book-review-surfing-uncertainty/) terms: the prediction errors caused by observations of a trans woman failing to match the observer's generative model of women get silenced for lack of alternative hypotheses if "She's trans" isn't in the observer's hypothesis space.[/ref] Nowadays, in progressive enclaves of Western countries, transness is definitely known to be a thing—and in particular subcultures that form around [non-sex-balanced interests](http://slatestarcodex.com/2017/08/07/contra-grant-on-exaggerated-differences/), the numbers can be quite dramatic. For example, on the [2018 _Slate Star Codex_ reader survey](http://slatestarcodex.com/2018/01/03/ssc-survey-results-2018/), 9.4% of respondents selected _F (cisgender)_ for the gender question, compared to 1.4% of respondents selecting _F (transgender m → f)_. So, if trans women are women, _13.4%_ (!!) of women who read _Slate Star Codex_ are trans. diff --git a/content/images/genderspace_cluster_choice.png b/content/images/genderspace_cluster_choice.png index a21a53d..43b68a9 100644 Binary files a/content/images/genderspace_cluster_choice.png and b/content/images/genderspace_cluster_choice.png differ diff --git a/content/images/genderspace_cluster_choice_source.xcf b/content/images/genderspace_cluster_choice_source.xcf index 889073f..bc1c7f3 100644 Binary files a/content/images/genderspace_cluster_choice_source.xcf and b/content/images/genderspace_cluster_choice_source.xcf differ diff --git a/content/pages/ancillary/categories-scatterplot-source.md b/content/pages/ancillary/categories-scatterplot-source.md new file mode 100644 index 0000000..6549bc2 --- /dev/null +++ b/content/pages/ancillary/categories-scatterplot-source.md @@ -0,0 +1,75 @@ +Title: Source Code for Scatterplot Figure in "The Categories Were Made for Man to Make Predictions" +Status: Hidden + +Requires [NumPy](http://www.numpy.org/), [Matplotlib](https://matplotlib.org/). + +```python +import functools +import itertools + +import matplotlib.pyplot as plot +from matplotlib.colors import ListedColormap +from mpl_toolkits.mplot3d import Axes3D +from numpy import array +from numpy.random import normal + + +class Person: + def __init__(self, a, b, c): + self.a = a + self.b = b + self.c = c + + def trait_vector(self): + return [self.a, self.b, self.c] + + @classmethod + def generate_cis_male(cls): + a = normal(0, 1) + b = normal(0, 1) + c = normal(0, 1) + return cls(a, b, c) + + @classmethod + def generate_cis_female(cls): + a = normal(3.5, 1) + b = normal(3.5, 1) + c = normal(3.5, 1) + return cls(a, b, c) + + @classmethod + def generate_agp(cls): + a = normal(0, 1) + b = normal(0, 1) + c = normal(3.8, 1) + return cls(a, b, c) + +def my_plot(): + group_size = 50 + + p1 = [Person.generate_cis_female().trait_vector() + for _ in range(group_size)] + p2 = [Person.generate_agp().trait_vector() + for _ in range(group_size)] + p3 = [Person.generate_cis_male().trait_vector() + for _ in range(group_size)] + + p = array(p1 + p2 + p3) + + target = list(functools.reduce(itertools.chain, + [itertools.repeat(i, group_size) + for i in range(1, 4)])) + + figure = plot.figure(figsize=(6, 5)) + axes = Axes3D(figure) + + axes.scatter(p[:, 0], p[:, 1], p[:, 2], + c=target, + cmap=ListedColormap(["#FF1493", "#B000B0", "#1E90FF"])) + plot.show() + + +if __name__ == "__main__": + my_plot() + +``` \ No newline at end of file diff --git a/theme/static/css/main.css b/theme/static/css/main.css index a32ebdb..6adaa98 100644 --- a/theme/static/css/main.css +++ b/theme/static/css/main.css @@ -335,3 +335,15 @@ p#notes-header { ol.simple-footnotes { font-size: 85%; } + + +/* sidebar-aside */ +aside.boxout { + width: 80%; + font-size: 12px; + background-color: #E5E5E5; + outline-style: solid; + outline-color: black; + outline-width: 1px; + padding: 6px; +}