Line Types

In [1]:
from lets_plot import *

from common import docs_dark_theme
In [2]:
LetsPlot.setup_html()

Predefined Patterns

In [3]:
def get_predefined_linetype_plot():
    linetype_names = ['blank', 'solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash']
    linetype_ids = list(range(len(linetype_names)))
    return ggplot() + \
        geom_spoke(aes(y=linetype_ids), x=0, angle=0, radius=1, size=4, color="#fa9fb5", alpha=.25) + \
        geom_spoke(aes(y=linetype_ids, linetype=linetype_ids), x=0, angle=0, radius=1, size=2, show_legend=False) + \
        geom_label(aes(y=linetype_ids, label=linetype_ids), \
                   x=0, hjust=0, size=12, label_size=0, label_format="{d}:", position=position_nudge(y=.3), family='mono') + \
        geom_label(aes(y=linetype_ids, label=linetype_names), \
                   x=.04, hjust=0, size=12, label_size=0, label_format="'{}'", position=position_nudge(y=.3), family='mono') + \
        scale_y_reverse() + \
        scale_linetype_identity() + \
        coord_cartesian(xlim=[0, 1], ylim=[-.5, len(linetype_names) - .75]) + \
        ggsize(800, 600) + \
        theme_void()
In [4]:
pl_plot = get_predefined_linetype_plot()
ggsave(pl_plot, "aesthetics_linetype.png")
pl_plot
Out[4]:
In [5]:
pl_plot_dark = get_predefined_linetype_plot() + docs_dark_theme()
ggsave(pl_plot_dark, "aesthetics_linetype_dark.png")
pl_plot_dark
Out[5]:

Custom Patterns

In [6]:
def get_custom_linetype_plot():
    linetype_patterns = [
        [10, 6],
        [8, [10, 6]],
        "A636",
    ]
    linetype_pattern_names = [str(pattern) for pattern in linetype_patterns]
    linetype_ids = list(range(len(linetype_patterns)))
    return ggplot() + \
        geom_spoke(aes(y=linetype_ids), x=0, angle=0, radius=1, size=4, color="#fa9fb5", alpha=.25) + \
        geom_spoke(aes(y=linetype_ids, linetype=linetype_patterns), x=0, angle=0, radius=1, size=2, show_legend=False) + \
        geom_label(aes(y=linetype_ids, label=linetype_pattern_names), \
                   x=0, hjust=0, size=12, label_size=0, label_format="{}", position=position_nudge(y=.3), family='mono') + \
        scale_y_reverse() + \
        scale_linetype_identity() + \
        coord_cartesian(xlim=[0, 1], ylim=[-.5, len(linetype_patterns) - .75]) + \
        ggsize(800, 300) + \
        theme_void()
In [7]:
cl_plot = get_custom_linetype_plot()
ggsave(cl_plot, "aesthetics_custom_linetype.png")
cl_plot
Out[7]:
In [8]:
cl_plot_dark = get_custom_linetype_plot() + docs_dark_theme()
ggsave(cl_plot_dark, "aesthetics_custom_linetype_dark.png")
cl_plot_dark
Out[8]: