
:orphan:
:html_theme.sidebar_secondary.remove:

.. This document is auto-generated by the altair-gallery extension. Do not modify directly.

.. _gallery_bar_chart_with_negatives:


Bar Chart with Negative Values
==============================
This example shows a bar chart with both positive and negative values.


.. altair-plot::
    :remove-code:
    


    import altair as alt
    from altair.datasets import data

    source = data.us_employment()

    predicate = alt.datum.nonfarm_change > 0
    color = alt.when(predicate).then(alt.value("steelblue")).otherwise(alt.value("orange"))

    alt.Chart(source).mark_bar().encode(
        x="month:T",
        y="nonfarm_change:Q",
        color=color
    ).properties(width=600)
    # No channel encoding options are specified in this chart
    # so the code is the same as for the method-based syntax.


.. tab-set::

    .. tab-item:: Method syntax
        :sync: method

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.us_employment()

            predicate = alt.datum.nonfarm_change > 0
            color = alt.when(predicate).then(alt.value("steelblue")).otherwise(alt.value("orange"))

            alt.Chart(source).mark_bar().encode(
                x="month:T",
                y="nonfarm_change:Q",
                color=color
            ).properties(width=600)


    .. tab-item:: Attribute syntax
        :sync: attribute

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.us_employment()

            predicate = alt.datum.nonfarm_change > 0
            color = alt.when(predicate).then(alt.value("steelblue")).otherwise(alt.value("orange"))

            alt.Chart(source).mark_bar().encode(
                x="month:T",
                y="nonfarm_change:Q",
                color=color
            ).properties(width=600)
            # No channel encoding options are specified in this chart
            # so the code is the same as for the method-based syntax.
