%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
# 表示1行2列,现在在第一个子图上进行操作
plt.subplot(1, 2, 1)
linear_data = np.arange(1, 9)
plt.plot(linear_data, '-o')
<IPython.core.display.Javascript object>
[<matplotlib.lines.Line2D at 0x1f259057780>]
exponential_data = linear_data ** 2
plt.subplot(1, 2, 2)
plt.plot(exponential_data, '-x')
[<matplotlib.lines.Line2D at 0x1f258edf0f0>]
plt.subplot(1, 2, 1)
plt.plot(exponential_data, '-x')
[<matplotlib.lines.Line2D at 0x1f259205f28>]
# 保证子图中坐标范围一致
plt.figure()
ax1 = plt.subplot(1, 2, 1)
plt.plot(linear_data, '-o')
ax2 = plt.subplot(1, 2, 2, sharey=ax1)
plt.plot(exponential_data, '-x')
<IPython.core.display.Javascript object>
[<matplotlib.lines.Line2D at 0x1f25924d710>]
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(2, 3,
sharex=True, sharey=True)
ax5.plot(exponential_data, '-')
<IPython.core.display.Javascript object>
[<matplotlib.lines.Line2D at 0x1f25a74a978>]
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex=True)
axs = [ax1, ax2, ax3, ax4]
for n in range(len(axs)):
sample_size = 10 ** (n + 1)
sample = np.random.normal(loc=0., scale=1., size=sample_size)
# 默认bin的个数为10
axs[n].hist(sample)
axs[n].set_title('n={}'.format(sample_size))
<IPython.core.display.Javascript object>
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex=True)
axs = [ax1, ax2, ax3, ax4]
for n in range(len(axs)):
sample_size = 10 ** (n + 1)
sample = np.random.normal(loc=0., scale=1., size=sample_size)
# bin设为100
axs[n].hist(sample, bins=100)
axs[n].set_title('n={}'.format(sample_size))
<IPython.core.display.Javascript object>
# 使用gridspec和直方图绘制一个复杂分析图
import matplotlib.gridspec as gridspec
x = np.random.random(size=10000)
y = np.random.normal(loc=0., scale=1., size=10000)
plt.figure()
gspec = gridspec.GridSpec(3, 3)
top_hist = plt.subplot(gspec[0, 1:])
side_hist = plt.subplot(gspec[1:, 0])
lower_right = plt.subplot(gspec[1:, 1:])
lower_right.scatter(x, y)
top_hist.hist(x, bins=100, normed=True)
side_hist.hist(y, bins=100, orientation='horizontal', normed=True)
side_hist.invert_xaxis()
<IPython.core.display.Javascript object>
import pandas as pd
# 正态分布采样
normal_sample = np.random.normal(loc=0., scale=1., size=10000)
# 随机数采样
random_sample = np.random.random(size=10000)
# gamma分布采样
gamma_sample = np.random.gamma(2, size=10000)
df = pd.DataFrame({'normal': normal_sample,
'random': random_sample,
'gamma': gamma_sample})
df.describe()
gamma | normal | random | |
---|---|---|---|
count | 10000.000000 | 10000.000000 | 10000.000000 |
mean | 2.004713 | -0.003639 | 0.506060 |
std | 1.398316 | 0.999177 | 0.289620 |
min | 0.014152 | -4.245805 | 0.000165 |
25% | 0.983928 | -0.673015 | 0.253994 |
50% | 1.697079 | -0.006095 | 0.508406 |
75% | 2.680493 | 0.664267 | 0.755801 |
max | 12.017532 | 4.193779 | 0.999936 |
plt.figure()
plt.boxplot(df['normal'], whis='range')
<IPython.core.display.Javascript object>
{'boxes': [<matplotlib.lines.Line2D at 0x9b6b5f8>],
'caps': [<matplotlib.lines.Line2D at 0x9b77f60>,
<matplotlib.lines.Line2D at 0x9b83898>],
'fliers': [<matplotlib.lines.Line2D at 0x9b89908>],
'means': [],
'medians': [<matplotlib.lines.Line2D at 0x9b83a20>],
'whiskers': [<matplotlib.lines.Line2D at 0x9b6bfd0>,
<matplotlib.lines.Line2D at 0x9b77828>]}
plt.figure()
plt.boxplot([df['normal'], df['random'], df['gamma']], whis='range')
<IPython.core.display.Javascript object>
{'boxes': [<matplotlib.lines.Line2D at 0xb174198>,
<matplotlib.lines.Line2D at 0xb1865f8>,
<matplotlib.lines.Line2D at 0xb194390>],
'caps': [<matplotlib.lines.Line2D at 0xb179c18>,
<matplotlib.lines.Line2D at 0xb179da0>,
<matplotlib.lines.Line2D at 0xb140e48>,
<matplotlib.lines.Line2D at 0xb1402e8>,
<matplotlib.lines.Line2D at 0xb197c50>,
<matplotlib.lines.Line2D at 0xb19db38>],
'fliers': [<matplotlib.lines.Line2D at 0xb180e10>,
<matplotlib.lines.Line2D at 0x9babac8>,
<matplotlib.lines.Line2D at 0xb1a5ba8>],
'means': [],
'medians': [<matplotlib.lines.Line2D at 0xb1805f8>,
<matplotlib.lines.Line2D at 0xb135470>,
<matplotlib.lines.Line2D at 0xb19dcc0>],
'whiskers': [<matplotlib.lines.Line2D at 0xb174ba8>,
<matplotlib.lines.Line2D at 0xb174d30>,
<matplotlib.lines.Line2D at 0xb186e48>,
<matplotlib.lines.Line2D at 0xb18cd30>,
<matplotlib.lines.Line2D at 0xb194be0>,
<matplotlib.lines.Line2D at 0xb197ac8>]}
plt.figure()
plt.boxplot([df['normal'], df['random'], df['gamma']])
<IPython.core.display.Javascript object>
{'boxes': [<matplotlib.lines.Line2D at 0xb488d68>,
<matplotlib.lines.Line2D at 0xb491b70>,
<matplotlib.lines.Line2D at 0x9a0bc18>],
'caps': [<matplotlib.lines.Line2D at 0xb459c18>,
<matplotlib.lines.Line2D at 0xb434b70>,
<matplotlib.lines.Line2D at 0xb140d30>,
<matplotlib.lines.Line2D at 0x9ad5a90>,
<matplotlib.lines.Line2D at 0x99ffba8>,
<matplotlib.lines.Line2D at 0x99ffd30>],
'fliers': [<matplotlib.lines.Line2D at 0xb1b6278>,
<matplotlib.lines.Line2D at 0x9a0bb00>,
<matplotlib.lines.Line2D at 0xb4a4da0>],
'means': [],
'medians': [<matplotlib.lines.Line2D at 0xb447c88>,
<matplotlib.lines.Line2D at 0x9ad5c18>,
<matplotlib.lines.Line2D at 0xb4a4588>],
'whiskers': [<matplotlib.lines.Line2D at 0xb488f28>,
<matplotlib.lines.Line2D at 0xb449208>,
<matplotlib.lines.Line2D at 0xb497a90>,
<matplotlib.lines.Line2D at 0xb14e550>,
<matplotlib.lines.Line2D at 0x9a05b38>,
<matplotlib.lines.Line2D at 0x9a05cc0>]}
plt.figure()
y = np.random.normal(loc=0., scale=1., size=10000)
x = np.random.random(size=10000)
plt.hist2d(x, y, bins=25)
<IPython.core.display.Javascript object>
(array([[ 0., 0., 1., 0., 4., 8., 13., 19., 28., 35., 50.,
51., 47., 42., 39., 24., 15., 17., 4., 1., 0., 1.,
0., 0., 0.],
[ 0., 0., 1., 1., 6., 3., 15., 20., 32., 27., 38.,
58., 43., 51., 35., 31., 23., 10., 5., 1., 1., 2.,
0., 0., 0.],
[ 0., 0., 0., 3., 4., 5., 12., 30., 30., 46., 53.,
53., 49., 42., 52., 25., 12., 15., 5., 1., 0., 1.,
0., 0., 0.],
[ 0., 0., 2., 7., 5., 10., 13., 19., 35., 41., 59.,
48., 35., 37., 27., 25., 16., 9., 7., 5., 1., 0.,
0., 0., 0.],
[ 0., 0., 0., 3., 3., 7., 16., 26., 35., 39., 43.,
51., 53., 42., 30., 15., 16., 10., 6., 4., 2., 1.,
0., 0., 0.],
[ 0., 0., 0., 3., 1., 10., 13., 20., 30., 36., 41.,
48., 59., 42., 45., 29., 13., 16., 6., 3., 2., 0.,
0., 0., 0.],
[ 0., 0., 0., 1., 3., 6., 13., 16., 31., 43., 52.,
49., 51., 46., 35., 25., 15., 12., 3., 1., 3., 0.,
0., 0., 0.],
[ 0., 0., 0., 1., 4., 7., 15., 13., 29., 41., 37.,
36., 42., 49., 30., 25., 18., 9., 8., 2., 0., 2.,
0., 0., 0.],
[ 0., 1., 0., 1., 3., 12., 17., 20., 34., 41., 43.,
42., 53., 48., 37., 28., 16., 10., 7., 2., 1., 0.,
0., 0., 0.],
[ 1., 0., 1., 4., 4., 10., 13., 23., 23., 40., 50.,
43., 58., 45., 32., 24., 22., 17., 2., 5., 2., 0.,
0., 0., 1.],
[ 0., 0., 1., 1., 4., 8., 20., 28., 29., 42., 52.,
46., 47., 40., 29., 25., 13., 10., 8., 2., 0., 1.,
0., 0., 0.],
[ 0., 0., 1., 1., 3., 7., 10., 23., 25., 48., 40.,
41., 55., 43., 30., 26., 13., 14., 5., 3., 0., 2.,
0., 0., 1.],
[ 1., 1., 2., 5., 5., 6., 15., 23., 32., 34., 46.,
46., 58., 44., 36., 25., 15., 11., 5., 3., 3., 1.,
0., 0., 0.],
[ 0., 0., 0., 2., 2., 6., 13., 26., 27., 30., 56.,
46., 39., 25., 50., 26., 12., 17., 10., 2., 5., 0.,
0., 0., 0.],
[ 0., 0., 3., 3., 3., 8., 11., 28., 44., 30., 45.,
35., 45., 38., 27., 17., 13., 4., 3., 0., 1., 1.,
0., 0., 0.],
[ 0., 0., 1., 1., 5., 4., 14., 17., 33., 37., 52.,
61., 50., 51., 41., 25., 19., 8., 5., 1., 1., 0.,
0., 0., 0.],
[ 0., 0., 0., 1., 1., 7., 10., 18., 26., 40., 50.,
49., 47., 49., 33., 24., 11., 15., 8., 0., 0., 1.,
0., 0., 0.],
[ 0., 0., 0., 2., 2., 6., 15., 18., 25., 36., 46.,
45., 57., 43., 39., 22., 17., 14., 7., 2., 0., 1.,
0., 0., 0.],
[ 0., 0., 1., 1., 7., 5., 21., 18., 27., 38., 47.,
59., 55., 33., 43., 26., 24., 8., 5., 2., 5., 1.,
0., 0., 0.],
[ 0., 0., 1., 1., 1., 8., 14., 18., 27., 38., 58.,
41., 41., 59., 37., 33., 9., 11., 5., 2., 2., 2.,
0., 0., 0.],
[ 0., 0., 0., 1., 5., 12., 13., 24., 28., 40., 28.,
58., 32., 43., 27., 26., 22., 11., 3., 4., 2., 0.,
0., 1., 0.],
[ 0., 0., 0., 1., 8., 7., 13., 14., 35., 38., 46.,
56., 37., 40., 36., 21., 23., 13., 7., 2., 0., 0.,
0., 1., 0.],
[ 0., 0., 0., 1., 2., 6., 10., 15., 31., 43., 46.,
44., 50., 45., 35., 18., 15., 10., 7., 1., 4., 0.,
0., 0., 0.],
[ 0., 0., 0., 2., 2., 6., 8., 22., 33., 38., 52.,
51., 47., 40., 42., 19., 9., 13., 6., 1., 0., 0.,
0., 0., 0.],
[ 0., 0., 0., 1., 4., 9., 11., 19., 30., 39., 44.,
44., 48., 43., 29., 17., 13., 7., 1., 3., 3., 0.,
0., 0., 0.]]),
array([ 3.66860160e-05, 4.00335689e-02, 8.00304517e-02,
1.20027335e-01, 1.60024217e-01, 2.00021100e-01,
2.40017983e-01, 2.80014866e-01, 3.20011749e-01,
3.60008632e-01, 4.00005515e-01, 4.40002397e-01,
4.79999280e-01, 5.19996163e-01, 5.59993046e-01,
5.99989929e-01, 6.39986812e-01, 6.79983695e-01,
7.19980577e-01, 7.59977460e-01, 7.99974343e-01,
8.39971226e-01, 8.79968109e-01, 9.19964992e-01,
9.59961874e-01, 9.99958757e-01]),
array([-3.66238483, -3.35245834, -3.04253186, -2.73260537, -2.42267888,
-2.11275239, -1.80282591, -1.49289942, -1.18297293, -0.87304644,
-0.56311996, -0.25319347, 0.05673302, 0.36665951, 0.67658599,
0.98651248, 1.29643897, 1.60636546, 1.91629194, 2.22621843,
2.53614492, 2.84607141, 3.1559979 , 3.46592438, 3.77585087,
4.08577736]),
<matplotlib.image.AxesImage at 0xbbd9588>)
plt.figure()
y = np.random.normal(loc=0., scale=1., size=10000)
x = np.random.random(size=10000)
plt.hist2d(x, y, bins=100)
<IPython.core.display.Javascript object>
(array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 1.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]]),
array([ 1.73330697e-04, 1.01693953e-02, 2.01654598e-02,
3.01615244e-02, 4.01575889e-02, 5.01536535e-02,
6.01497181e-02, 7.01457826e-02, 8.01418472e-02,
9.01379118e-02, 1.00133976e-01, 1.10130041e-01,
1.20126105e-01, 1.30122170e-01, 1.40118235e-01,
1.50114299e-01, 1.60110364e-01, 1.70106428e-01,
1.80102493e-01, 1.90098557e-01, 2.00094622e-01,
2.10090687e-01, 2.20086751e-01, 2.30082816e-01,
2.40078880e-01, 2.50074945e-01, 2.60071009e-01,
2.70067074e-01, 2.80063138e-01, 2.90059203e-01,
3.00055268e-01, 3.10051332e-01, 3.20047397e-01,
3.30043461e-01, 3.40039526e-01, 3.50035590e-01,
3.60031655e-01, 3.70027720e-01, 3.80023784e-01,
3.90019849e-01, 4.00015913e-01, 4.10011978e-01,
4.20008042e-01, 4.30004107e-01, 4.40000171e-01,
4.49996236e-01, 4.59992301e-01, 4.69988365e-01,
4.79984430e-01, 4.89980494e-01, 4.99976559e-01,
5.09972623e-01, 5.19968688e-01, 5.29964753e-01,
5.39960817e-01, 5.49956882e-01, 5.59952946e-01,
5.69949011e-01, 5.79945075e-01, 5.89941140e-01,
5.99937204e-01, 6.09933269e-01, 6.19929334e-01,
6.29925398e-01, 6.39921463e-01, 6.49917527e-01,
6.59913592e-01, 6.69909656e-01, 6.79905721e-01,
6.89901786e-01, 6.99897850e-01, 7.09893915e-01,
7.19889979e-01, 7.29886044e-01, 7.39882108e-01,
7.49878173e-01, 7.59874237e-01, 7.69870302e-01,
7.79866367e-01, 7.89862431e-01, 7.99858496e-01,
8.09854560e-01, 8.19850625e-01, 8.29846689e-01,
8.39842754e-01, 8.49838819e-01, 8.59834883e-01,
8.69830948e-01, 8.79827012e-01, 8.89823077e-01,
8.99819141e-01, 9.09815206e-01, 9.19811270e-01,
9.29807335e-01, 9.39803400e-01, 9.49799464e-01,
9.59795529e-01, 9.69791593e-01, 9.79787658e-01,
9.89783722e-01, 9.99779787e-01]),
array([-3.55725494, -3.48360653, -3.40995812, -3.33630971, -3.2626613 ,
-3.18901289, -3.11536447, -3.04171606, -2.96806765, -2.89441924,
-2.82077083, -2.74712242, -2.67347401, -2.5998256 , -2.52617719,
-2.45252877, -2.37888036, -2.30523195, -2.23158354, -2.15793513,
-2.08428672, -2.01063831, -1.9369899 , -1.86334148, -1.78969307,
-1.71604466, -1.64239625, -1.56874784, -1.49509943, -1.42145102,
-1.34780261, -1.27415419, -1.20050578, -1.12685737, -1.05320896,
-0.97956055, -0.90591214, -0.83226373, -0.75861532, -0.68496691,
-0.61131849, -0.53767008, -0.46402167, -0.39037326, -0.31672485,
-0.24307644, -0.16942803, -0.09577962, -0.0221312 , 0.05151721,
0.12516562, 0.19881403, 0.27246244, 0.34611085, 0.41975926,
0.49340767, 0.56705609, 0.6407045 , 0.71435291, 0.78800132,
0.86164973, 0.93529814, 1.00894655, 1.08259496, 1.15624337,
1.22989179, 1.3035402 , 1.37718861, 1.45083702, 1.52448543,
1.59813384, 1.67178225, 1.74543066, 1.81907908, 1.89272749,
1.9663759 , 2.04002431, 2.11367272, 2.18732113, 2.26096954,
2.33461795, 2.40826637, 2.48191478, 2.55556319, 2.6292116 ,
2.70286001, 2.77650842, 2.85015683, 2.92380524, 2.99745365,
3.07110207, 3.14475048, 3.21839889, 3.2920473 , 3.36569571,
3.43934412, 3.51299253, 3.58664094, 3.66028936, 3.73393777,
3.80758618]),
<matplotlib.image.AxesImage at 0xbea1668>)
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0xc1682e8>