samples/sample-rng-plot.py
author Tom Henderson <tomh@tomh.org>
Mon, 03 Jan 2011 13:50:19 -0800
changeset 6763 c394af07802d
parent 6722 cc6b9c4fc9e8
permissions -rw-r--r--
fix formatting
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6722
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     1
# -*- Mode:Python; -*-
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     2
# /*
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     3
#  * This program is free software; you can redistribute it and/or modify
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     4
#  * it under the terms of the GNU General Public License version 2 as
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     5
#  * published by the Free Software Foundation
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     6
#  *
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     7
#  * This program is distributed in the hope that it will be useful,
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     8
#  * but WITHOUT ANY WARRANTY; without even the implied warranty of
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     9
#  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    10
#  * GNU General Public License for more details.
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    11
#  *
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    12
#  * You should have received a copy of the GNU General Public License
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    13
#  * along with this program; if not, write to the Free Software
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    14
#  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    15
#  */
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    16
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    17
# Demonstrate use of ns-3 as a random number generator integrated with
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    18
# plotting tools; adapted from Gustavo Carneiro's ns-3 tutorial
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    19
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    20
import numpy as np
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    21
import matplotlib.pyplot as plt
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    22
import ns3
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    23
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    24
# mu, var = 100, 225
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    25
rng = ns3.NormalVariable(100.0, 225.0)
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    26
x = [rng.GetValue() for t in range(10000)]
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    27
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    28
# the histogram of the data
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    29
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    30
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    31
plt.title('ns-3 histogram')
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    32
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    33
plt.axis([40, 160, 0, 0.03])
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    34
plt.grid(True)
cc6b9c4fc9e8 add sample rng plotting program for tutorial
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    35
plt.show()