In [6]:
import matplotlib as mpl
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
plt.ion()
%matplotlib inline
In [2]:
x = np.random.ranf(20) * 2
w = 0.5
b = 1
y = w * x + b + np.random.normal(loc=0, size=20, scale=0.2) * x
lx = np.linspace(0,2,20)
ly = lx * w + b
In [3]:
ccs = plt.scatter(x, y)
plt.setp(ccs, "color", "orange")
ccs.set_label("样本")
plt.setp(ccs, "lw", 0.0001)
lines = plt.plot(lx, ly)
for line in lines:
line.set_label("目标函数")
plt.legend()
plt.show()
In [4]:
plt.setp(ccs)
agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array
alpha: float or None
animated: bool
antialiased or antialiaseds: Boolean or sequence of booleans
array: ndarray
clim: a length 2 sequence of floats
clip_box: a `~.Bbox` instance
clip_on: bool
clip_path: [(`~matplotlib.path.Path`, `~.Transform`) | `~.Patch` | None]
cmap: a colormap or registered colormap name
color: matplotlib color arg or sequence of rgba tuples
contains: a callable function
edgecolor or edgecolors: matplotlib color spec or sequence of specs
facecolor or facecolors: matplotlib color spec or sequence of specs
figure: a `~.Figure` instance
gid: an id string
hatch: [ '/' | '\\' | '|' | '-' | '+' | 'x' | 'o' | 'O' | '.' | '*' ]
label: object
linestyle or dashes or linestyles: ['solid' | 'dashed', 'dashdot', 'dotted' | (offset, on-off-dash-seq) | ``'-'`` | ``'--'`` | ``'-.'`` | ``':'`` | ``'None'`` | ``' '`` | ``''``]
linewidth or linewidths or lw: float or sequence of floats
norm: `~.Normalize`
offset_position: [ 'screen' | 'data' ]
offsets: float or sequence of floats
path_effects: `~.AbstractPathEffect`
paths: unknown
picker: [None | bool | float | callable]
pickradius: float distance in points
rasterized: bool or None
sizes: unknown
sketch_params: (scale: float, length: float, randomness: float)
snap: bool or None
transform: `~.Transform`
url: a url string
urls: List[str] or None
visible: bool
zorder: float
In [ ]:
In [5]:
ccs.set_label("aaa")
In [32]:
help(np.random.normal)
Help on built-in function normal:
normal(...) method of mtrand.RandomState instance
normal(loc=0.0, scale=1.0, size=None)
Draw random samples from a normal (Gaussian) distribution.
The probability density function of the normal distribution, first
derived by De Moivre and 200 years later by both Gauss and Laplace
independently [2]_, is often called the bell curve because of
its characteristic shape (see the example below).
The normal distributions occurs often in nature. For example, it
describes the commonly occurring distribution of samples influenced
by a large number of tiny, random disturbances, each with its own
unique distribution [2]_.
Parameters
----------
loc : float or array_like of floats
Mean ("centre") of the distribution.
scale : float or array_like of floats
Standard deviation (spread or "width") of the distribution.
size : int or tuple of ints, optional
Output shape. If the given shape is, e.g., ``(m, n, k)``, then
``m * n * k`` samples are drawn. If size is ``None`` (default),
a single value is returned if ``loc`` and ``scale`` are both scalars.
Otherwise, ``np.broadcast(loc, scale).size`` samples are drawn.
Returns
-------
out : ndarray or scalar
Drawn samples from the parameterized normal distribution.
See Also
--------
scipy.stats.norm : probability density function, distribution or
cumulative density function, etc.
Notes
-----
The probability density for the Gaussian distribution is
.. math:: p(x) = \frac{1}{\sqrt{ 2 \pi \sigma^2 }}
e^{ - \frac{ (x - \mu)^2 } {2 \sigma^2} },
where :math:`\mu` is the mean and :math:`\sigma` the standard
deviation. The square of the standard deviation, :math:`\sigma^2`,
is called the variance.
The function has its peak at the mean, and its "spread" increases with
the standard deviation (the function reaches 0.607 times its maximum at
:math:`x + \sigma` and :math:`x - \sigma` [2]_). This implies that
`numpy.random.normal` is more likely to return samples lying close to
the mean, rather than those far away.
References
----------
.. [1] Wikipedia, "Normal distribution",
http://en.wikipedia.org/wiki/Normal_distribution
.. [2] P. R. Peebles Jr., "Central Limit Theorem" in "Probability,
Random Variables and Random Signal Principles", 4th ed., 2001,
pp. 51, 51, 125.
Examples
--------
Draw samples from the distribution:
>>> mu, sigma = 0, 0.1 # mean and standard deviation
>>> s = np.random.normal(mu, sigma, 1000)
Verify the mean and the variance:
>>> abs(mu - np.mean(s)) < 0.01
True
>>> abs(sigma - np.std(s, ddof=1)) < 0.01
True
Display the histogram of the samples, along with
the probability density function:
>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 30, normed=True)
>>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
... np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
... linewidth=2, color='r')
>>> plt.show()
In [ ]:
In [ ]:
Content source: StAugust/staugust.github.io
Similar notebooks: