🚀 Gen 5 of the leading AI app deployment platform launches October 6. Click for the livestream.

Python Dash data not loading completely on Heroku

Python Dash data not loading completely on Heroku Pipelines:

Dash data loads correctly on localhost (code attached) with a value in 2017 up to 50 on the y-axis, but those values are not being displayed when deployed to Heroku.



import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html 
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
import dash_bootstrap_components as dbc
import re

# Load data
url1 = 'https://sewerpollutants.s3.us-west-2.amazonaws.com/LIMS.xls'
df = pd.read_excel(url1,index_col=0, parse_dates=True)
df["pollutant_abb"] = df.PARAMLISTDESC.apply(lambda x: re.sub(" *\-.+", "", x)) # remove -Total Recoverable
df.sort_values("pollutant_abb", inplace = True)

# Plot data
external_stylesheets = [dbc.themes.BOOTSTRAP]
app = dash.Dash(__name__, external_stylesheets = external_stylesheets)

app.layout = html.Div([
    html.Center(html.H2("Sewer Pollutants")),
    html.Center(html.H6("Interactive Dashboard using Laboratory Information Management System(LIMS) data")),
                    options = [{'label': str(pltn), 'value': str(pltn)} for pltn in df.pollutant_abb.unique()], 
                    multi = True, className = "ml-3 mr-3"),
                html.Div(dcc.Loading(id = 'barchart'))  # or dbc.Spinner
            ]) # html.div
        ], label = "EPA metal Pollutants of Concern (POC)") # dbc.Col dcc.Tab

# Callbacks
    Output("barchart", "children"),
    [Input("pollutant-dropdown", "value")]
def filterPollutants(selected_pollutants):
    if selected_pollutants:
        dff = df.loc[df.pollutant_abb.isin(selected_pollutants)]
        dff = df
    bar_fig = {'data':[
            x = dff['U_SAMPLE_DTTM'],
            y = dff['DISPLAYVALUE'],
    'layout':go.Layout(title='Sampling for Local Limits', 
            # yaxis_range=[0,2],
            yaxis_title_text='Metals mg/L'

    # line_fig = px.line(dff, x= "U_SAMPLE_DTTM", y = "DISPLAYVALUE", color = "pollutant_abb",#  template = "simple_white",
    #   title = "Sampling for Local Limits")

    # line_fig.update_layout({"yaxis": {"title": {"text": "Metals mg/L"}}})

    return dcc.Graph(figure = bar_fig)

if __name__ == "__main__":

Any help would be appreciated.

Hi @Hamza21 and welcome to the Dash Community!

I think your issue is similar to this thread.

I checked the datatypes of your columns and values of y axis are of type object instead of the numeric(float) type.
Try the solution I have discussed in the same thread.