qiskit.visualization.circuit_drawer
qiskit.visualization.circuit_drawer(circuit, scale=None, filename=None, style=None, output=None, interactive=False, plot_barriers=True, reverse_bits=None, justify=None, vertical_compression='medium', idle_wires=None, with_layout=True, fold=None, ax=None, initial_state=False, cregbundle=None, wire_order=None, expr_len=30, measure_arrows=None, barrier_label_len=16)
Dessinez le circuit quantique. Le paramètre de sortie permet de choisir le format de dessin :
text
Art ASCII TextDrawing pouvant être affiché dans la console.
mpl
Images dont les couleurs ont été générées exclusivement dans Python à l'aide de matplotlib.
latex
Images de haute qualité provenant du site LaTeX.
Cette fonction est conçue pour appeler une version système installée de pdflatex à partir d'une entrée utilisateur arbitraire (par exemple pour exécuter du code personnalisé dans Instruction.label), et ne doit donc être utilisée qu'avec des données fiables.
latex_source
Sortie brute non compilée d' LaTeX. Voici le code source de ce qui sera affiché par le latex drawer.
La prise en charge des Expr nœuds dans les conditions et SwitchCaseOp.target les champs est provisoire et incomplète. Les text volets et mpl s'efforceront autant que possible de mettre en évidence les dépendances entre les données, mais les volets « LaTeX-based » les ignoreront complètement.
Paramètres
-
circuit (QuantumCircuit) – Le circuit à visualiser.
-
scale (float | None) – Échelle de l'image à dessiner (réduire si
< 1.0). Utilisé uniquement par les sortiesmpl,latexetlatex_source. La valeur par défaut est1.0. -
filename (str | None) – Chemin d'accès au fichier dans lequel l'image doit être enregistrée. La valeur par défaut est
None(le résultat n'est pas enregistré dans un fichier). -
Nom du style, nom du fichier JSON du style ou dictionnaire spécifiant le style.
-
Les noms de style pris en charge sont
"iqp"(par défaut),"iqp-dark","clifford","textbook"et"bw". -
Si l'on reçoit un fichier JSON, par exemple
my_style.jsonoumy_style(le.jsonpeut être omise), cette fonction tente de charger le dictionnaire de style à partir de cet emplacement. Notez que le fichier JSON doit spécifier complètement les spécifications de visualisation. Le fichier est recherché dans
qiskit/visualization/circuit/styles, le répertoire de travail actuel, et l'emplacement spécifié dans~/.qiskit/settings.conf. -
S'il s'agit d'un dictionnaire, chaque entrée remplace la configuration par défaut. Si la commande
"name"Si cette clé est fournie, la configuration par défaut est définie par ce style. Par exemple,{"name": "textbook", "subfontsize": 5}charge le"textbook"style et définit la taille de police secondaire (par exemple, les angles des portes) sur5. -
Si
None, le style par défaut"iqp"est utilisé ou, s'il est donné, le style par défautspécifiée à l'adresse
~/.qiskit/settings.conf.
-
-
output (str | None) – Sélectionnez la méthode de sortie à utiliser pour dessiner le circuit. Les choix valables sont
text,mpl,latex,latex_source. Par défaut, le tiroirtextest utilisé à moins que le fichier de configuration de l'utilisateur (généralement~/.qiskit/settings.conf) ne contienne un autre backend défini par défaut. Par exemple,circuit_drawer = latex. Si le kwarg de sortie est défini, ce backend sera toujours utilisé à la place du backend par défaut dans le fichier de configuration de l'utilisateur. -
interactive (bool) – Lorsqu'il est défini sur
True, il affiche le circuit dans une nouvelle fenêtre (pourmpl, cela dépend du backend matplotlib utilisé qui le prend en charge). Remarque : lorsqu'elle est utilisée avec le type de sortie texte oulatex_source, cette option n'a aucun effet et sera ignorée silencieusement. La valeur par défaut estFalse. -
reverse_bits (bool | None) – Lorsqu'il est défini sur
True, il inverse l'ordre des bits à l'intérieur des registres pour la visualisation de sortie. La valeur par défaut estFalse, à moins que le fichier de configuration de l'utilisateur (généralement~/.qiskit/settings.conf) ne contienne une autre valeur. Par exemple,circuit_reverse_bits = True. -
plot_barriers (bool) – Activer/désactiver les barrières de dessin dans le circuit de sortie. Prend par défaut la valeur
True. -
justify (str | None) – Les options sont
"left","right"ou"none"(str). Si d'autres informations sont fournies, la justification à gauche sera utilisée à la place. Il indique où les portes doivent être placées dans le circuit de sortie s'il existe une option.nonechaque porte est placée dans sa propre colonne. La valeur par défaut estleft. -
vertical_compression (str | None) –
high,mediumoulow. Il fusionne les lignes générées par la sortie du texte afin que le dessin prenne moins de place verticalement. La valeur par défaut estmedium. Utilisé uniquement par la sortietext, il sera ignoré silencieusement dans le cas contraire. -
idle_wires (bool |str | None) – Inclure (ou non) les fils inactifs (fils sans éléments de circuit) dans la visualisation de la sortie. La chaîne
"auto"est également possible, auquel cas les fils inutilisés sont montrés, sauf que le circuit est accompagné d'un schéma. La valeur par défaut est"auto", à moins que le fichier de configuration de l'utilisateur (généralement~/.qiskit/settings.conf) ne contienne une autre valeur. Par exemple,circuit_idle_wires = False. -
with_layout (bool) – Inclure des informations sur la mise en page, avec des étiquettes sur la mise en page physique. La valeur par défaut est
True. -
fold (int | None) – Définit la pagination. Il peut être désactivé à l'aide de -1. Dans
text, définit la longueur des lignes. Cette fonction est utile lorsque le dessin ne tient pas dans la console. Si None (défaut), il essaiera de deviner la largeur de la console en utilisantshutil.get_terminal_size(). Cependant, si vous utilisez jupyter, la longueur de ligne par défaut est fixée à 80 caractères. Dansmpl, il s'agit du nombre de couches (visuelles) avant le pliage. La valeur par défaut est 25. -
ax (Any | None) – Utilisé uniquement par le backend mpl. Un objet facultatif
matplotlib.axes.Axesà utiliser pour la sortie de la visualisation. Si aucune n'est spécifiée, une nouvelle figure matplotlib sera créée et utilisée. De plus, s'il est spécifié, aucun chiffre ne sera renvoyé car il est redondant. -
initial_state (bool) – Ajoute au début des fils de qubit et aux fils classiques. La valeur par défaut est
False. -
cregbundle (bool | None) – S'il est réglé sur
True, les registres classiques des liasses sont enregistrés. La valeur par défaut estTrue, sauf sioutputest remplacé par"text". -
wire_order (list[int] | None) – Une liste d'entiers utilisés pour réorganiser l'affichage des bits. La liste doit comporter une entrée pour chaque bit, les bits étant compris entre 0 et (
num_qubits+num_clbits). -
expr_len (int) – Nombre de caractères à afficher si un
Exprest utilisé pour la condition dans unControlFlowOp. Si ce nombre est dépassé, la chaîne sera tronquée à ce nombre et « … » sera ajouté à la fin. -
measure_arrows (bool | None) – Si la valeur est « True », tracez une flèche partant de chaque case de mesure et descendant vers le bit ou le registre classique où la valeur de la mesure est stockée. Si la valeur est « False », ne dessiner pas de flèche, mais inscrire plutôt le nom du bit ou du registre dans la case de mesure. La valeur par défaut est, sauf
Truesi le fichier de configuration de l'utilisateur (généralement~/.qiskit/settings.conf) contient une autre valeur. Par exemple,circuit_measure_arrows = False. -
barrier_label_len (int) – Nombre de caractères à afficher pour
Barrierles étiquettes dans le circuit de sortie. Si ce nombre est dépassé, la chaîne sera tronquée à ce nombre et « … » sera ajouté à la fin.
Retours
TextDrawing ou matplotlib.figure ou PIL.Image ou str:
-
TextDrawing(sioutput='text')Un dessin qui peut être imprimé en ascii art.
-
matplotlib.figure.Figure(sioutput='mpl')Un objet figure matplotlib pour le schéma de circuit.
-
PIL.Image(ifoutput='latex')Une représentation en mémoire de l'image du schéma de circuit.
-
str(sioutput='latex_source')Le code source LaTeX pour visualiser le schéma du circuit.
Augmentations
- VisualizationError – lorsqu'une méthode de sortie non valide est sélectionnée
- ImportError - lorsque les méthodes de sortie nécessitent des bibliothèques non installées.
Exemple
from qiskit import QuantumCircuit
from qiskit.visualization import circuit_drawer
qc = QuantumCircuit(1, 1)
qc.h(0)
qc.measure(0, 0)
circuit_drawer(qc, output="mpl", style={"backgroundcolor": "#EEEEEE"})