def __init__(
        self,
        value_map: (
            Mapping[QubitTuple, SupportsFloat] | Mapping[grid_qubit.GridQubit, SupportsFloat]
        ),
        **kwargs,
    ):
        """2D qubit grid Heatmaps

        Draw 2D qubit grid heatmap with Matplotlib with parameters to configure the properties of
        the plot.

        Args:
            value_map: A dictionary of qubits or QubitTuples as keys and corresponding magnitude
                as float values. It corresponds to the data which should be plotted as a heatmap.
            **kwargs: Optional kwargs including
                title: str, default = None
                plot_colorbar: bool, default = True

                annotation_map: dictionary,
                    A dictionary of QubitTuples as keys and corresponding annotation str as values.
                    It corresponds to the text that should be added on top of each heatmap
                    polygon unit.
                annotation_format: str, default = '.2g'
                    Formatting string using which annotation_map will be implicitly constructed by
                    applying format(value, annotation_format) for each key in value_map.
                    This is ignored if annotation_map is explicitly specified.
                annotation_text_kwargs: Matplotlib Text **kwargs,
                highlighted_qubits: An iterable of qubits to highlight.

                colorbar_position: {'right', 'left', 'top', 'bottom'}, default = 'right'
                colorbar_size: str, default = '5%'
                colorbar_pad: str, default = '2%'
                colorbar_options: Matplotlib colorbar **kwargs, default = None,


                collection_options: Matplotlib PolyCollection **kwargs, default
                                    {"cmap" : "viridis"}
                vmin, vmax: colormap scaling floats, default = None
        """
        self._value_map: Mapping[QubitTuple, SupportsFloat] = {
            k if isinstance(k, tuple) else (k,): v for k, v in value_map.items()
        }
        self._validate_kwargs(kwargs)
        if '_config' not in self.__dict__:
            self._config: dict[str, Any] = {}
        self._config.update(
            {
                "plot_colorbar": True,
                "colorbar_position": "right",
                "colorbar_size": "5%",
                "colorbar_pad": "2%",
                "collection_options": {"cmap": "viridis"},
                "annotation_format": ".2g",
            }
        )
        self._config.update(kwargs)
2D qubit grid Heatmaps

        Draw 2D qubit grid heatmap with Matplotlib with parameters to configure the properties of
        the plot.

        Args:
            value_map: A dictionary of qubits or QubitTuples as keys and corresponding magnitude
                as float values. It corresponds to the data which should be plotted as a heatmap.
            **kwargs: Optional kwargs including
                title: str, default = None
                plot_colorbar: bool, default = True

                annotation_map: dictionary,
                    A dictionary of QubitTuples as keys and corresponding annotation str as values.
                    It corresponds to the text that should be added on top of each heatmap
                    polygon unit.
                annotation_format: str, default = '.2g'
                    Formatting string using which annotation_map will be implicitly constructed by
                    applying format(value, annotation_format) for each key in value_map.
                    This is ignored if annotation_map is explicitly specified.
                annotation_text_kwargs: Matplotlib Text **kwargs,
                highlighted_qubits: An iterable of qubits to highlight.

                colorbar_position: {'right', 'left', 'top', 'bottom'}, default = 'right'
                colorbar_size: str, default = '5%'
                colorbar_pad: str, default = '2%'
                colorbar_options: Matplotlib colorbar **kwargs, default = None,


                collection_options: Matplotlib PolyCollection **kwargs, default
                                    {"cmap" : "viridis"}
                vmin, vmax: colormap scaling floats, default = None
        
cirq-core/cirq/vis/heatmap.py