Not able to view US-states heatmap

636 views Asked by At

I have written the following code to heat heatmap of US-States. But I am unable to get the output image in Google Colab.

State codes are two alphabet codes for a particular state of the US.

temp = pd.DataFrame(project_data.groupby("school_state")["project_is_approved"].apply(np.mean)).reset_index()

temp.columns = ['state_code', 'num_proposals']

scl = [[0.0, 'rgb(242,240,247)'],[0.2, 'rgb(218,218,235)'],[0.4, 'rgb(188,189,220)'],\
            [0.6, 'rgb(158,154,200)'],[0.8, 'rgb(117,107,177)'],[1.0, 'rgb(84,39,143)']]

data = [ dict(
        type='choropleth',
        colorscale = scl,
        autocolorscale = False,
        locations = temp['state_code'],
        z = temp['num_proposals'].astype(float),
        locationmode = 'USA-states',
        text = temp['state_code'],
        marker = dict(line = dict (color = 'rgb(255,255,255)',width = 2)),
        colorbar = dict(title = "% of pro")
    ) ]

layout = dict(
        title = 'Project Proposals % of Acceptance Rate by US States',
        geo = dict(
            scope='usa',
            projection=dict( type='albers usa' ),
            showlakes = True,
            lakecolor = 'rgb(255, 255, 255)',
        ),
    )

fig = dict(data=data, layout=layout)

offline.iplot(fig, filename='us-map-heat-map')

I have imported following libraries:

from chart_studio import plotly
import plotly.offline as offline
import plotly.graph_objs as go
offline.init_notebook_mode()
from collections import Counter
import chart_studio.plotly as py
1

There are 1 answers

0
Jacob K On BEST ANSWER

Try the following code with your data:
(I tried putting your variables in the correct spots)

choropleth = go.Choropleth(
    locations=temp['state_code'],
    locationmode='USA-states',
    z = temp['num_proposals'].astype(float),
    zmin = 0,
    zmax = max(temp['num_proposals'].astype(float)),
    colorscale=scl,
    autocolorscale=False,
    text='Proposals', 
    marker_line_color='white',
    colorbar_title="% Acceptance Rate"
)
fig = go.Figure(data=choropleth)

fig.update_layout(
    title_text='Project Proposals % of Acceptance Rate by US States',
    geo = dict(
        scope='usa',
        projection=go.layout.geo.Projection(type = 'albers usa'),
        showlakes=True,
        lakecolor='rgb(255, 255, 255)'),
)

fig.show()

This code works by creating the Plotly Choropleth Graph Object with your data, then loading that object into a Plotly Figure Graph Object, then updating the layout (for proper titles and zooms), and finally displaying the figure.