{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "33f4bb3c",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Visualizar la sincronización del circuito\"\n",
        "description: \"Visualice la sincronización de los circuitos generados creando una figura que puede ver, descargar o ambas cosas.\"\n",
        "---\n",
        "\n",
        "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}\n",
        "\n",
        "<span id=\"visualize-circuit-timing\" />\n",
        "\n",
        "# Visualizar la sincronización del circuito\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "bfada4f0",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "{/*\n",
        "  DO NOT EDIT THIS CELL!!!\n",
        "  This cell's content is generated automatically by a script. Anything you add\n",
        "  here will be removed next time the notebook is run. To add new content, create\n",
        "  a new cell before or after this one.\n",
        "  */}\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"Versiones del paquete\">\n",
        "    El código de esta página se ha desarrollado siguiendo los siguientes requisitos.\n",
        "    Recomendamos utilizar estas versiones o posteriores.\n",
        "\n",
        "    ```\n",
        "    qiskit[all]~=2.5.0\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c3240c62",
      "metadata": {},
      "source": [
        "Además de [visualizar las instrucciones de un circuito](/docs/guides/visualize-circuits), es posible que desees visualizar la programación del circuito utilizando el método de [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) Qiskit. Esta visualización podría ayudarte a detectar rápidamente los tiempos de inactividad de los qubits, por ejemplo. Sin embargo, este método no ofrece resultados precisos en el caso de circuitos dinámicos.  Para visualizar la programación dinámica de circuitos, utilice el `draw_circuit_schedule_timing` método, tal y como se describe en la guía [de visualización de la sincronización de circuitos](/docs/guides/qiskit-runtime-circuit-timing) de Qiskit Runtime.\n",
        "\n",
        "<span id=\"examples\" />\n",
        "\n",
        "## Ejemplos\n",
        "\n",
        "Para visualizar un programa de circuito programado, puede llamar a esta función con un conjunto de argumentos de control. La mayor parte del aspecto de la imagen de salida puede modificarse mediante una hoja de estilos, pero no es necesario.\n",
        "\n",
        "<span id=\"draw-with-the-default-stylesheet\" />\n",
        "\n",
        "### Dibujar con la hoja de estilos predeterminada\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "5b21b8c1",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<Image src=\"/docs/images/guides/visualize-circuit-timing/extracted-outputs/5b21b8c1-0.svg\" alt=\"Output of the previous code cell\" />"
            ]
          },
          "execution_count": 1,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "from qiskit.visualization.timeline import draw\n",
        "from qiskit.providers.fake_provider import GenericBackendV2\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "\n",
        "backend = GenericBackendV2(5)\n",
        "\n",
        "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n",
        "isa_circuit = pm.run(qc)\n",
        "\n",
        "draw(isa_circuit, target=backend.target)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "37f62ecd",
      "metadata": {},
      "source": [
        "<span id=\"draw-with-a-stylesheet-suited-for-program-debugging\" />\n",
        "\n",
        "### Dibuja con una hoja de estilos adecuada para la depuración de programas\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "907dc46c",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<Image src=\"/docs/images/guides/visualize-circuit-timing/extracted-outputs/907dc46c-0.svg\" alt=\"Output of the previous code cell\" />"
            ]
          },
          "execution_count": 2,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "from qiskit.visualization.timeline import draw, IQXDebugging\n",
        "from qiskit.providers.fake_provider import GenericBackendV2\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "qc.measure_all()\n",
        "\n",
        "backend = GenericBackendV2(5)\n",
        "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n",
        "isa_circuit = pm.run(qc)\n",
        "draw(isa_circuit, style=IQXDebugging(), target=backend.target)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "5406fe18",
      "metadata": {},
      "source": [
        "Puede crear funciones de generador o diseño personalizadas y actualizar una hoja de estilo existente con las funciones personalizadas. De este modo, puede controlar la mayor parte del aspecto de la imagen de salida sin modificar el código base del cajón de circuito programado.  Consulte la [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) Para más ejemplos.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9daa7cf7",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## Próximos pasos\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Recomendaciones\">\n",
        "  * [Visualiza la sincronización del circuito](/docs/guides/qiskit-runtime-circuit-timing) al utilizar Qiskit Runtime\n",
        "  * [Visualizar circuitos](/docs/guides/visualize-circuits)\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}