Mercurial > hg > medcouple
annotate talk/code/plots.py @ 48:1baa6b0a7199
move duplicate code into function
this changed the dimensions of the generated image slightly
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Sun, 15 May 2016 00:20:01 -0400 |
parents | 7887a0b32539 |
children | 4a669a51f49c |
rev | line source |
---|---|
45
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
1 import matplotlib.pyplot as plt |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
2 import matplotlib.cbook as cbook |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
3 import numpy as np |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
4 |
48
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
5 def boxhistplot(data, fig=None, rect=None, xticks=None, colour=None, |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
6 bins=None, title=None): |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
7 data_stats = cbook.boxplot_stats(data) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
8 |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
9 left, bottom, width, height = rect |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
10 histheight = 0.75*height |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
11 boxheight = 0.25*height |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
12 |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
13 # setup the figure and axes |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
14 bpAx = fig.add_axes([left, bottom+histheight, width, boxheight]) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
15 histAx = fig.add_axes([left, bottom, width, histheight]) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
16 |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
17 # plot stuff |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
18 bpAx.bxp(data_stats, vert=False, flierprops={"marker": 'x'}) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
19 histAx.hist(data, bins=bins, color=colour) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
20 |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
21 # confirm that the axes line up |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
22 xlims = np.array([bpAx.get_xlim(), histAx.get_xlim()]) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
23 for ax in [bpAx, histAx]: |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
24 ax.set_xlim([xlims.min(), xlims.max()]) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
25 |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
26 bpAx.set_xticklabels([]) # clear out overlapping xlabels |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
27 bpAx.set_yticks([]) # don't need that 1 tick mark |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
28 bpAx.set_title(title,fontsize=20) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
29 |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
30 histAx.set_xticks(xticks) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
31 histAx.get_xaxis().tick_bottom() |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
32 bpAx.get_xaxis().tick_top() |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
33 |
45
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
34 with open("../../data/men") as f: |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
35 men = [float(x) for x in f.readlines()] |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
36 |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
37 with open("../../data/women") as f: |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
38 women = [float(x) for x in f.readlines()] |
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
39 |
46
7887a0b32539
put the two boxplots above each other
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
45
diff
changeset
|
40 fig = plt.figure(figsize=(12,8)) |
48
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
41 xticks = np.arange(5,105,5) |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
42 bins = 0.5 + np.arange(0,100) |
46
7887a0b32539
put the two boxplots above each other
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
45
diff
changeset
|
43 |
48
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
44 boxhistplot(men, fig=fig, rect=[0.05, 0.55, 0.9, 0.35], xticks=xticks, |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
45 colour=[0.3, 0.3, 1], |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
46 bins=bins, title="Ages of actors") |
45
6daaf6a8e431
Add code to plot boys and girls
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
47 |
48
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
48 boxhistplot(women, fig=fig, rect=[0.05, 0.1, 0.9, 0.35], xticks=xticks, |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
49 colour='pink', |
1baa6b0a7199
move duplicate code into function
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
46
diff
changeset
|
50 bins=bins, title="Ages of actresses") |
46
7887a0b32539
put the two boxplots above each other
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
45
diff
changeset
|
51 |
7887a0b32539
put the two boxplots above each other
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
45
diff
changeset
|
52 plt.savefig("boys-and-girls.pdf") |