In [1]:
from lets_plot import *
from lets_plot.geo_data import *
The geodata is provided by © OpenStreetMap contributors and is made available here under the Open Database License (ODbL).
In [2]:
LetsPlot.setup_html()
In [3]:
state_gcoder = geocode_states('us-48').inc_res()
state_centroids = state_gcoder.get_centroids()
In [4]:
ggplot() + geom_text(aes(label='state'), data=state_centroids)
Out[4]:
In [5]:
ggplot() + geom_text(aes(label='state'), data=state_centroids, check_overlap=True)
Out[5]:
In [6]:
# Rotate labels

gggrid([
    ggplot() + geom_text(aes(label='state'), data=state_centroids, angle=45),
    ggplot() + geom_text(aes(label='state'), data=state_centroids, angle=45, check_overlap=True)
])
Out[6]:
In [7]:
p = ggplot() + \
    geom_polygon(aes(fill='state'), 
                 data=state_gcoder.get_boundaries(), 
                 show_legend=False, 
                 color='black',
                 size=0.2) + \
    scale_fill_brewer(palette="Pastel2") + \
    coord_map() + \
    theme_void() + \
    ggsize(800, 400)

p + geom_label(aes(label='state'), data=state_centroids)
Out[7]:
In [8]:
p + geom_label(aes(label='state'), data=state_centroids, check_overlap=True)
Out[8]:
In [9]:
from lets_plot import tilesets

# ToDo livemap

ggplot() + \
    geom_livemap(tiles=tilesets.CARTO_POSITRON_NO_LABELS) + \
    geom_label(aes(label='state'), data=state_centroids, check_overlap=True) + \
    theme_void()
Out[9]: