import numpy as np
import pandas as pd
from datetime import datetime
from lets_plot import *
LetsPlot.setup_html()
economics_url = 'https://raw.githubusercontent.com/JetBrains/lets-plot-docs/master/data/economics.csv'
economics = pd.read_csv(economics_url)
economics['date'] = pd.to_datetime(economics['date'])
start = datetime(2000, 1, 1)
economics = economics.loc[economics['date'] >= start]
p_dt = ggplot(economics, aes('date', 'unemploy')) + geom_line()
# Default
p_dt + scale_x_datetime()
# Define format of the axis labels
p_dt + scale_x_datetime(format="%b %Y")
ggplot(economics, aes('date', 'date')) + geom_line()\
+ scale_x_datetime(format="%B")+ scale_y_datetime(format="%Y")
bar_dict = {
'time': ['Lunch', 'Dinner', 'Night'],
'total_bill': [14.89, 17.23, 40]
}
ggplot(bar_dict, aes('time', 'total_bill', fill='time')) + geom_bar(stat='identity') + scale_x_discrete(format='time is {}')
N = 21
x = [v for v in range(N)]
y0 = [pow(10, v / 10.) for v in range(N)]
y1 = [v * 5 for v in range(N)]
formula = ['10^(x/10)'] * N + ['5*x'] * N
data = dict(x=x * 2, y=y0 + y1, formula=formula)
p = ggplot(data) + geom_point(aes('x', 'y', color='formula', size='formula')) + scale_size_manual(values=[7, 3])
p
p + scale_x_continuous(format='x={.1f}') + scale_y_continuous(format='y={.1f}')
# Skip 'format' if labels are specified
breaks = [0, 10, 20]
labels = ['0', '10', '20']
p + scale_x_continuous(breaks=breaks, labels=labels, format='is {.2f}')
p + scale_x_log10(format='x={.2f}') + scale_y_log10(format='y={.3f}')
p + scale_x_reverse(format='.2f')