File size: 4,718 Bytes
e88abf9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import solara
import pandas as pd
import plotly.express as px
from utils import selected_template

# You can color complex maps like we do here representing unemployment data

# Allows us to grab data from a supplied URL
from urllib.request import urlopen
# Used to decode JSON data
import json
# Grab US county geometry data
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    counties = json.load(response)

# Grab unemployment data based on each counties Federal Information Processing number
df2 = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
                dtype={"fips": str})



@solara.component
def Maps():

    with solara.Column(gap="20px", align = "stretch") as main:
        
        solara.Markdown(f"#Map Scatter Plots")

        # There are many interesting ways of working with maps
        # plotly.com/python-api-reference/generated/plotly.express.scatter_geo.html
        df = px.data.gapminder().query("year == 2007")
        fig1 = px.scatter_geo(df, locations="iso_alpha",
                            color="continent", # which column to use to set the color of markers
                            hover_name="country", # column added to hover information
                            size="pop", # size of markers
                            projection="orthographic",
                            template=selected_template.value
                            )


        # solara.Markdown(f"#### Use Box plot to compare different variables ")
        solara.Markdown("""
                        ```python
                            # There are many interesting ways of working with maps
                            # plotly.com/python-api-reference/generated/plotly.express.scatter_geo.html
                            df = px.data.gapminder().query("year == 2007")
                            fig = px.scatter_geo(df, locations="iso_alpha",
                                                color="continent", # which column to use to set the color of markers
                                                hover_name="country", # column added to hover information
                                                size="pop", # size of markers
                                                projection="orthographic")
                        ```
                        """
                        )
        solara.FigurePlotly(fig1)

        # Draw map using the county JSON data, color using unemployment values on a range of 12
        fig2 = px.choropleth(df2, geojson=counties, locations='fips', color='unemp',
                                color_continuous_scale="Viridis",
                                range_color=(0, 12),
                                scope="usa",
                                labels={'unemp':'unemployment rate'},
                                template=selected_template.value
                                )

        solara.Markdown(f"####Choropleth Maps")
        solara.Markdown("""
                        ```python
                            # You can color complex maps like we do here representing unemployment data

                            # Allows us to grab data from a supplied URL
                            from urllib.request import urlopen
                            # Used to decode JSON data
                            import json
                            # Grab US county geometry data
                            with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
                                counties = json.load(response)

                            # Grab unemployment data based on each counties Federal Information Processing number
                            df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
                                            dtype={"fips": str})

                            # Draw map using the county JSON data, color using unemployment values on a range of 12
                            fig2 = px.choropleth(df, geojson=counties, locations='fips', color='unemp',
                                                    color_continuous_scale="Viridis",
                                                    range_color=(0, 12),
                                                    scope="usa",
                                                    labels={'unemp':'unemployment rate'}
                                                    )

                        ```
                        """
                        )
        solara.FigurePlotly(fig2)

    return main