Skip to main content
IBM Quantum Platform

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)

GitHub

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.

Avertissement

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.

Avertissement

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 sorties mpl, latex et latex_source . La valeur par défaut est 1.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).

  • style (dict |str | None) –

    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.json ou my_style (le .json

      peut ê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) sur 5.

    • Si None , le style par défaut "iqp" est utilisé ou, s'il est donné, le style par défaut

      spé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 tiroir text est 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 (pour mpl , cela dépend du backend matplotlib utilisé qui le prend en charge). Remarque : lorsqu'elle est utilisée avec le type de sortie texte ou latex_source , cette option n'a aucun effet et sera ignorée silencieusement. La valeur par défaut est False.

  • 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 est False , à 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. none chaque porte est placée dans sa propre colonne. La valeur par défaut est left.

  • vertical_compression (str | None) – high, medium ou low. 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 est medium. Utilisé uniquement par la sortie text , 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 utilisant shutil.get_terminal_size(). Cependant, si vous utilisez jupyter, la longueur de ligne par défaut est fixée à 80 caractères. Dans mpl, 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 0|0\rangle au début des fils de qubit et 00 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 est True, sauf si output est 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 Expr est utilisé pour la condition dans un ControlFlowOp. 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 True si 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 Barrier les é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 (si output='text')

    Un dessin qui peut être imprimé en ascii art.

  • matplotlib.figure.Figure (si output='mpl')

    Un objet figure matplotlib pour le schéma de circuit.

  • PIL.Image (if output='latex')

    Une représentation en mémoire de l'image du schéma de circuit.

  • str (si output='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"})
Schéma de circuit produit par le code précédent.
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.