82 lines
6.5 KiB
Plaintext
82 lines
6.5 KiB
Plaintext
---
|
||
title: circuit_drawer
|
||
description: API reference for qiskit.visualization.circuit_drawer
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: function
|
||
python_api_name: qiskit.visualization.circuit_drawer
|
||
---
|
||
|
||
# qiskit.visualization.circuit\_drawer
|
||
|
||
<Function id="qiskit.visualization.circuit_drawer" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.19/qiskit/visualization/circuit_visualization.py" signature="circuit_drawer(circuit, scale=None, filename=None, style=None, output=None, interactive=False, plot_barriers=True, reverse_bits=False, justify=None, vertical_compression='medium', idle_wires=True, with_layout=True, fold=None, ax=None, initial_state=False, cregbundle=True)">
|
||
Draw the quantum circuit. Use the output parameter to choose the drawing format:
|
||
|
||
**text**: ASCII art TextDrawing that can be printed in the console.
|
||
|
||
**matplotlib**: images with color rendered purely in Python.
|
||
|
||
**latex**: high-quality images compiled via latex.
|
||
|
||
**latex\_source**: raw uncompiled latex output.
|
||
|
||
**Parameters**
|
||
|
||
* **circuit** ([*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) – the quantum circuit to draw
|
||
* **scale** (*float*) – scale of image to draw (shrink if \< 1.0). Only used by the mpl, latex and latex\_source outputs. Defaults to 1.0.
|
||
* **filename** (*str*) – file path to save image to. Defaults to None.
|
||
* **style** (*dict or str*) – dictionary of style or file name of style json file. This option is only used by the mpl or latex output type. If style is a str, it is used as the path to a json file which contains a style dict. The file will be opened, parsed, and then any style elements in the dict will replace the default values in the input dict. A file to be loaded must end in `.json`, but the name entered here can omit `.json`. For example, `style='iqx.json'` or `style='iqx'`. If style is a dict and the `'name'` key is set, that name will be used to load a json file, followed by loading the other items in the style dict. For example, `style={'name': 'iqx'}`. If style is not a str and name is not a key in the style dict, then the default value from the user config file (usually `~/.qiskit/settings.conf`) will be used, for example, `circuit_mpl_style = iqx`. If none of these are set, the default style will be used. The search path for style json files can be specified in the user config, for example, `circuit_mpl_style_path = /home/user/styles:/home/user`. See: [`DefaultStyle`](qiskit.visualization.qcstyle.DefaultStyle "qiskit.visualization.qcstyle.DefaultStyle") for more information on the contents.
|
||
* **output** (*str*) – select the output method to use for drawing the circuit. Valid choices are `text`, `mpl`, `latex`, `latex_source`. By default the text drawer is used unless the user config file (usually `~/.qiskit/settings.conf`) has an alternative backend set as the default. For example, `circuit_drawer = latex`. If the output kwarg is set, that backend will always be used over the default in the user config file.
|
||
* **interactive** (*bool*) – when set to true, show the circuit in a new window (for mpl this depends on the matplotlib backend being used supporting this). Note when used with either the text or the latex\_source output type this has no effect and will be silently ignored. Defaults to False.
|
||
* **reverse\_bits** (*bool*) – when set to True, reverse the bit order inside registers for the output visualization. Defaults to False.
|
||
* **plot\_barriers** (*bool*) – enable/disable drawing barriers in the output circuit. Defaults to True.
|
||
* **justify** (*string*) – options are `left`, `right` or `none`. If anything else is supplied, it defaults to left justified. It refers to where gates should be placed in the output circuit if there is an option. `none` results in each gate being placed in its own column.
|
||
* **vertical\_compression** (*string*) – `high`, `medium` or `low`. It merges the lines generated by the text output so the drawing will take less vertical room. Default is `medium`. Only used by the text output, will be silently ignored otherwise.
|
||
* **idle\_wires** (*bool*) – include idle wires (wires with no circuit elements) in output visualization. Default is True.
|
||
* **with\_layout** (*bool*) – include layout information, with labels on the physical layout. Default is True.
|
||
* **fold** (*int*) – sets pagination. It can be disabled using -1. In text, sets the length of the lines. This is useful when the drawing does not fit in the console. If None (default), it will try to guess the console width using `shutil.get_terminal_size()`. However, if running in jupyter, the default line length is set to 80 characters. In mpl, it is the number of (visual) layers before folding. Default is 25.
|
||
* **ax** (*matplotlib.axes.Axes*) – Only used by the mpl backend. An optional Axes object to be used for the visualization output. If none is specified, a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant.
|
||
* **initial\_state** (*bool*) – optional. Adds `|0>` in the beginning of the wire. Default is False.
|
||
* **cregbundle** (*bool*) – optional. If set True, bundle classical registers. Default is True.
|
||
|
||
**Returns**
|
||
|
||
`TextDrawing` or `matplotlib.figure` or `PIL.Image` or `str`:
|
||
|
||
* **TextDrawing (output=’text’)**
|
||
|
||
A drawing that can be printed as ascii art.
|
||
|
||
* **matplotlib.figure.Figure (output=’mpl’)**
|
||
|
||
A matplotlib figure object for the circuit diagram.
|
||
|
||
* **PIL.Image (output=’latex’)**
|
||
|
||
An in-memory representation of the image of the circuit diagram.
|
||
|
||
* **str (output=’latex\_source’)**
|
||
|
||
The LaTeX source code for visualizing the circuit diagram.
|
||
|
||
**Raises**
|
||
|
||
* [**VisualizationError**](qiskit.visualization.VisualizationError "qiskit.visualization.VisualizationError") – when an invalid output method is selected
|
||
* **MissingOptionalLibraryError** – when the output methods requires non-installed libraries.
|
||
|
||
**Example**
|
||
|
||
```python
|
||
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
|
||
from qiskit.tools.visualization import circuit_drawer
|
||
q = QuantumRegister(1)
|
||
c = ClassicalRegister(1)
|
||
qc = QuantumCircuit(q, c)
|
||
qc.h(q)
|
||
qc.measure(q, c)
|
||
circuit_drawer(qc, output='mpl', style={'backgroundcolor': '#EEEEEE'})
|
||
```
|
||
|
||

|
||
</Function>
|
||
|