#### Overview of this book

Jupyter has garnered a strong interest in the data science community of late, as it makes common data processing and analysis tasks much simpler. This book is for data science professionals who want to master various tasks related to Jupyter to create efficient, easy-to-share, scientific applications. The book starts with recipes on installing and running the Jupyter Notebook system on various platforms and configuring the various packages that can be used with it. You will then see how you can implement different programming languages and frameworks, such as Python, R, Julia, JavaScript, Scala, and Spark on your Jupyter Notebook. This book contains intuitive recipes on building interactive widgets to manipulate and visualize data in real time, sharing your code, creating a multi-user environment, and organizing your notebook. You will then get hands-on experience with Jupyter Labs, microservices, and deploying them on the web. By the end of this book, you will have taken your knowledge of Jupyter to the next level to perform all key tasks associated with it.
Title Page
Packt Upsell
Contributors
Preface
Free Chapter
Installation and Setting up the Environment
Accessing and Retrieving Data
Working with Widgets
Jupyter Dashboards
Multiuser Jupyter
Jupyter Security
Jupyter Labs
Index

## Generating a histogram using Python

In this example, we generate a histogram of random numbers. In this case, we are simulating rolling dice 1,000 times and recording the resultant face value.

### How to do it...

We can use this Python script:

import pylab
import random

random.seed(113)

samples = 1000
dice = []
for i in range(samples):
total = random.randint(1,6) + random.randint(1,6)
dice.append(total)

pylab.hist(dice, bins= pylab.arange(1.5,12.6,1.0))
pylab.show()

This results in a histogram display:

This is the graph showing almost exactly what we expected. I imagine that with a higher cycle count, we would have got closer to a pure pyramid peaking at 7.

### How it works...

For the histogram, we use the pylab library. We also use the random library to simulate the dice rolls.

We first set the random seed to a fixed value. This allows you to reproduce the results I have shown exactly.

Next, we simulate rolling the dice 1,000 times and record the results in an array. In this case, we are just recording...