from cartoframes.auth import set_default_credentials
from cartoframes.viz.helpers import color_category_layer, color_bins_layer, color_continuous_layer, \
size_category_layer, size_bins_layer, size_continuous_layer, animation_layer
from cartoframes.viz import Map
set_default_credentials('cartovl')
Order
# Color category layer
# -Simplest version
Map(
color_category_layer('sf_neighborhoods', 'name')
)
# -With all params
Map(
color_category_layer('sf_neighborhoods',
'name',
'Neighborhoods',
top=5,
palette='bold',
description='By Name',
footer='City of San Francisco'
)
)
# Color category (polygon)
# -Simplest version
Map(
color_category_layer('sf_neighborhoods', 'name')
)
# -With all params and custom category buckets
Map(
color_category_layer('sf_neighborhoods',
'name',
'Neighborhoods',
cat=['Bayview', 'Marina'],
palette='[red, blue]',
description='By Name',
footer='Data source: City of SF'
)
)
# Color category lines
# -Simplest version
Map(
color_category_layer('sfcta_congestion_roads', 'direction')
)
# -With all params
Map(
color_category_layer(
'sfcta_congestion_roads',
'direction',
'Roads',
top=4,
palette='bold',
description='Direction Traveled',
footer='Data: City of SF'
)
)
# -With all params and custom categories
Map(
color_category_layer(
'sfcta_congestion_roads',
'direction',
'Roads',
cat=['N','S'],
palette='[blue,orange]',
description='Direction Traveled',
footer='Data: City of SF'
)
)
# Color bins helper
# -Simplest version
Map(
animation_layer('populated_places', 'pop_max')
)
# -With all params
Map(
animation_layer(
'populated_places',
'pop_max',
duration= 8,
stroke_width=0.25,
stroke_color='yellow',
)
)
# Color bins helper
# -Simplest version
Map(
color_bins_layer('south_america_country', 'pop_est')
)
# -With custom class breaks
Map(
color_bins_layer(
'south_america_country',
'pop_est',
'Pop est',
breaks=[1000000, 5000000, 10000000],
palette='purpor',
description='By country',
footer ='Data: Natural Earth')
)
# Color continuous
# -Simplest version
Map(
color_continuous_layer('south_america_country', 'pop_est')
)
# -With all params
Map(
color_continuous_layer(
'south_america_country',
'pop_est',
'Pop est',
palette='sunset',
description='By country',
footer ='Data: Natural Earth'
)
)
# Size continuous
# -Simplest version
Map(
size_continuous_layer('county_points_with_population', 'estimate_total')
)
# -With all params
Map(
size_continuous_layer(
'county_points_with_population',
'estimate_total',
'Population',
size=[2,50],
description='By US County',
footer ='Datasource: US Census Bureau'
)
)
# Size continuous (lines)
# -Simplest version
Map(
size_continuous_layer('sfcta_congestion_roads', 'auto_speed')
)
# -With all params
Map(
size_continuous_layer(
'sfcta_congestion_roads',
'auto_speed',
'Roads',
size=[1,20],
color='green',
description='Sized by travel speed',
footer ='Data: City of SF'
)
)
# Size bins (points)
# -Simplest version
Map(
size_bins_layer('county_points_with_population', 'estimate_total')
)
# -With all params
Map(
size_bins_layer(
'county_points_with_population',
'estimate_total',
'Population Estimates',
method='equal',
size=[5,20],
color='brown',
description='By US County',
footer ='Data: US Census Bureau'
)
)
# Size bins (lines)
# -Simplest version
Map(
size_bins_layer('sfcta_congestion_roads', 'auto_speed')
)
# -With all params
Map(
size_bins_layer(
'sfcta_congestion_roads',
'auto_speed',
'Roads',
method='quantiles',
bins=3,
size=[1,5,10],
color='blue',
description='Sized by travel speed',
footer ='Data: City of SF'
)
)
# -With all params and custom class breaks
Map(
size_bins_layer(
'sfcta_congestion_roads',
'auto_speed',
'Roads',
breaks=[10,50,70],
size=[1,5,10],
color='blue',
description='Sized by travel speed',
footer ='Data: City of SF'
)
)
# Size category
# -Simplest version
Map(
size_category_layer('sfcta_congestion_roads', 'direction')
)
# -With all params
Map(
size_category_layer(
'sfcta_congestion_roads',
'direction',
'Roads',
cat=['N','S','E','W'],
size=[2,4,6,8],
description='Sized by use',
footer ='Data: City of SF'
)
)
from cartoframes.viz.helpers import _inspect
_inspect(color_category_layer)
def color_category_layer( source, value, title='', top=11, cat=None, palette=None, size=None, opacity=None, stroke_color=None, stroke_width=None, description='', footer='', legend=True, popup=True, widget=False, animate=None): """Helper function for quickly creating a category color map. Args: source (:py:class:`Dataset <cartoframes.data.Dataset>` or str): Dataset or text representing a table or query associated with user account. value (str): Column to symbolize by. title (str, optional): Title of legend. top (int, optional): Number of category for map. Default is 11. Values can range from 1 to 16. cat (str, optional): Category list. Must be a valid CARTO VL category list. palette (str, optional): Palette that can be a named CARTOColor palette or other valid CARTO VL palette expression. Default is `bold`. size (int, optional): Size of point or line features. opacity (int, optional): Opacity value for point color and line features. Default is '0.8'. stroke_width (int, optional): Size of the stroke on point features. stroke_color (str, optional): Color of the stroke on point features. Default is '#222'. description (str, optional): Description text legend placed under legend title. footer (str, optional): Footer text placed under legend items. legend (bool, optional): Display map legend: "True" or "False". Set to "True" by default. popup (bool, optional): Display popups on hover and click: "True" or "False". Set to "True" by default. widget (bool, optional): Display a widget for mapped data. Set to "False" by default. animate (str, optional): Animate features by date/time or other numeric field. Returns: cartoframes.viz.Layer: Layer styled by `value`. Includes a legend, popup and widget on `value`. """ func = 'buckets' if cat else 'top' default_palette = 'bold' animation_filter = 'animation(linear(${}), 20, fade(1,1))'.format(animate) if animate else '1' return Layer( source, style={ 'point': { 'color': 'opacity(ramp({0}(${1}, {2}), {3}),{4})'.format( func, value, cat or top, serialize_palette(palette) or default_palette, opacity or '1'), 'width': '{0}'.format( size or defaults.STYLE['point']['width']), 'strokeColor': '{0}'.format( stroke_color or defaults.STYLE['point']['strokeColor']), 'strokeWidth': '{0}'.format( stroke_width or defaults.STYLE['point']['strokeWidth']), 'filter': animation_filter }, 'line': { 'color': 'opacity(ramp({0}(${1}, {2}), {3}),{4})'.format( func, value, cat or top, serialize_palette(palette) or default_palette, opacity or '1'), 'width': '{0}'.format( size or defaults.STYLE['line']['width']), 'filter': animation_filter }, 'polygon': { 'color': 'opacity(ramp({0}(${1}, {2}), {3}), {4})'.format( func, value, cat or top, serialize_palette(palette) or default_palette, opacity or '0.9'), 'strokeColor': '{0}'.format( stroke_color or defaults.STYLE['polygon']['strokeColor']), 'strokeWidth': '{0}'.format( stroke_width or defaults.STYLE['polygon']['strokeWidth']), 'filter': animation_filter } }, popup=popup and not animate and { 'hover': { 'title': title or value, 'value': '$' + value } }, legend=legend and { 'type': { 'point': 'color-category-point', 'line': 'color-category-line', 'polygon': 'color-category-polygon' }, 'title': title or value, 'description': description, 'footer': footer }, widgets=[ animate and { 'type': 'time-series', 'value': animate, 'title': 'Animation' }, widget and { 'type': 'category', 'value': value, 'title': 'Categories' } ] )