CNOT error density

import datetime
from qiskit import IBMQ
from kaleidoscope.qiskit.backends import cnot_error_density

Simple multi-system comparison

IBMQ.load_account()
provider = IBMQ.get_provider(group='open')

backends = []
backends.append(provider.backends.ibmq_lima)
backends.append(provider.backends.ibmq_santiago)
backends.append(provider.backends.ibmq_belem)
backends.append(provider.backends.ibmq_quito)

cnot_error_density(backends)
../../_images/cnot_density_1_0.png

Linear error scaling

cnot_error_density(backends, scale='linear')
../../_images/cnot_density_2_0.png

Historical data with custom colors

backend = provider.backends.ibmq_lima
props = [backend.properties(datetime=datetime.datetime(2020, kk, 1)) for kk in range(2, 7)]
cnot_error_density(props, offset=200,
                   colors=['#d6d6d6', '#bebebe', '#a6a6a6', '#8e8e8e', '#ff007f'])
Traceback (most recent call last):
  File "<ipython-input-4-8f954a623980>", line 3, in <module>
    cnot_error_density(props, offset=200,
  File "/opt/miniconda3/envs/qiskit/lib/python3.9/site-packages/kaleidoscope/qiskit/backends/mpl/cnot_err.py", line 82, in cnot_error_density
    if back.configuration().n_qubits < 2:
AttributeError: 'NoneType' object has no attribute 'configuration'

Use %tb to get the full traceback.

Shift position of backend labels

cnot_error_density(backends, text_xval=3)
../../_images/cnot_density_4_0.png

Change offset between distributions

cnot_error_density(backends, offset=300)
../../_images/cnot_density_5_0.png

Change gaussian widths

cnot_error_density(backends, covariance_factor=0.5)
../../_images/cnot_density_6_0.png

Custom x-limits

cnot_error_density(backends, xlim=[0.1,5])
../../_images/cnot_density_7_0.png