eyediagram
is a python library for generating eye diagrams (also known as
eye patterns).
This is prototype-quality software. The documentation is thin, and the API may change.
To build the package, cython and numpy must be installed.
To use the package, numpy and scipy must be installed. Plots are generated with
either matplotlib (http://matplotlib.org/) or bokeh (http://bokeh.pydata.org/),
so usually either one of those must be installed. However, the core function
eyediagram.core.grid_count
generates a numpy array that can be displayed or
saved as an image using any other plotting or image-handling software, so it
is not a strict requirement that matplotlib
or bokeh
be installed. See
the script pyqtgraph_demo.py
in the demo
directory for an example that
uses pyqtgraph
(http://www.pyqtgraph.org/) to display the eye diagram. The
plot generated by that script is shown below.
This is mpl_demo.py
. It uses the eyediagram
function from the
eyediagram.mpl
module to plot an eye diagram using matplotlib
.
from eyediagram.demo_data import demo_data
from eyediagram.mpl import eyediagram
import matplotlib.pyplot as plt
num_symbols = 5000
samples_per_symbol = 24
y = demo_data(num_symbols, samples_per_symbol)
eyediagram(y, 2*samples_per_symbol, offset=16, cmap=plt.cm.coolwarm)
plt.show()
This is bok_demo.py
. It uses the eyediagram
function from the
eyediagram.bok
module to plot an eye diagram using bokeh
.
from eyediagram.demo_data import demo_data
from eyediagram.bok import eyediagram
from matplotlib.cm import coolwarm
from bokeh.plotting import show
# Get some data for the demonstration.
num_symbols = 5000
samples_per_symbol = 24
y = demo_data(num_symbols, samples_per_symbol)
p1 = eyediagram(y, 2*samples_per_symbol, offset=16, cmap=coolwarm,
filename='bok_demo.html')
# If you don't want the dependency on matplotlib, replace `cmap=coolwarm`
# with, say, `color=(160, 145, 50)`.
show(p1)
The script pyqtgraph_demo.py
in the demo
directory shows how an eye diagram can be
displayed using the graphics library pyqtgraph
. It generates this plot: