Show Sidebar Hide Sidebar

# Uniform

How to sample numbers from any uniform distribution on the real line.

#### New to Plotly?¶

You can set up Plotly to work in online or offline mode, or in jupyter notebooks.
We also have a quick-reference cheatsheet (new!) to help you get started!

### Imports¶

This tutorial imports Plotly and Numpy.

In [1]:
import plotly.plotly as py
import plotly.graph_objs as go

import numpy as np


#### Uniform¶

Unlike np.random.random() where you can sample a number between a fixed interval of [0, 1), np.random.uniform() allows you to set your own low and high bounds to your interval and draw uniformly from that. Also like np.random.random(), there is a size parameter for sampling several times from the uniform distribution.

In [2]:
import plotly.plotly as py
import plotly.graph_objs as go

num_of_points = 150
uniform_array_1 = np.random.uniform(0, 1, num_of_points)
uniform_array_2 = np.random.uniform(2, 4, num_of_points)
uniform_array_3 = np.random.uniform(6, 10, num_of_points)

trace1 = go.Scatter(
x=[j for j in range(num_of_points)],
y=uniform_array_1,
mode='markers',
marker = dict(
size=14,
color=uniform_array_1,
colorscale='Reds'
),
name='[0, 1]'
)

trace2 = go.Scatter(
x=[j for j in range(num_of_points)],
y=uniform_array_2,
mode='markers',
marker = dict(
size=13,
color=uniform_array_2,
colorscale='Blues'
),
name='[2, 4]'
)

trace3 = go.Scatter(
x=[j for j in range(num_of_points)],
y=uniform_array_3,
mode='markers',
marker = dict(
size=12,
color=uniform_array_3,
colorscale='Greens'
),
name='[6, 10]'
)

py.iplot([trace1, trace2, trace3], filename='numpy-uniform')

Out[2]:
In [4]:
help(np.random.uniform)

Help on built-in function uniform:

uniform(...)
uniform(low=0.0, high=1.0, size=None)

Draw samples from a uniform distribution.

Samples are uniformly distributed over the half-open interval
[low, high) (includes low, but excludes high).  In other words,
any value within the given interval is equally likely to be drawn
by uniform.

Parameters
----------
low : float, optional
Lower boundary of the output interval.  All values generated will be
greater than or equal to low.  The default value is 0.
high : float
Upper boundary of the output interval.  All values generated will be
less than high.  The default value is 1.0.
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.  Default is None, in which case a
single value is returned.

Returns
-------
out : ndarray
Drawn samples, with shape size.

--------
randint : Discrete uniform distribution, yielding integers.
random_integers : Discrete uniform distribution over the closed
interval [low, high].
random_sample : Floats uniformly distributed over [0, 1).
random : Alias for random_sample.
rand : Convenience function that accepts dimensions as input, e.g.,
rand(2,2) would generate a 2-by-2 array of floats,
uniformly distributed over [0, 1).

Notes
-----
The probability density function of the uniform distribution is

.. math:: p(x) = \frac{1}{b - a}

anywhere within the interval [a, b), and zero elsewhere.

Examples
--------
Draw samples from the distribution:

>>> s = np.random.uniform(-1,0,1000)

All values are within the given interval:

>>> np.all(s >= -1)
True
>>> np.all(s < 0)
True

Display the histogram of the samples, along with the
probability density function:

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 15, normed=True)
>>> plt.plot(bins, np.ones_like(bins), linewidth=2, color='r')
>>> plt.show()