In [ ]:
import numpy as np
from IPython.display import display
from bqplot import *
In [ ]:
size = 100
x_data = range(size)
np.random.seed(0)
y_data = np.cumsum(np.random.randn(size) * 100.0)
y_data_2 = np.cumsum(np.random.randn(size))
y_data_3 = np.cumsum(np.random.randn(size) * 100.)
In [ ]:
sc_ord = OrdinalScale()
sc_y = LinearScale()
sc_y_2 = LinearScale()
ord_ax = Axis(label='Test X', scale=sc_ord, tick_format='0.0f', grid_lines='none')
y_ax = Axis(label='Test Y', scale=sc_y,
orientation='vertical', tick_format='0.2f',
grid_lines='solid')
y_ax_2 = Axis(label='Test Y 2', scale=sc_y_2,
orientation='vertical', side='right',
tick_format='0.0f', grid_lines='solid')
In [ ]:
line_chart = Lines(x=x_data[:10], y = [y_data[:10], y_data_2[:10] * 100, y_data_3[:10]],
scales={'x': sc_ord, 'y': sc_y},
labels=['Line1', 'Line2', 'Line3'],
display_legend=True)
bar_chart = Bars(x=x_data[:10],
y=[y_data[:10], y_data_2[:10] * 100, y_data_3[:10]],
scales={'x': sc_ord, 'y': sc_y_2},
labels=['Bar1', 'Bar2', 'Bar3'],
display_legend=True)
fig = Figure(axes=[ord_ax, y_ax], marks=[bar_chart, line_chart], legend_location = 'bottom-left')
# the line does not have a Y value set. So only the bars will be displayed
display(fig)
In [ ]:
x_scale = LinearScale()
y_scale = LinearScale()
hist = Hist(sample=y_data,
colors=['orange'],
scales={'sample': x_scale, 'count': y_scale},
labels=['Test Histogram'],
display_legend=True)
x_ax = Axis(label='Test X', scale=x_scale,
tick_format='0.2f', grid_lines='none')
y_ax_2 = Axis(label='Test Y', scale=y_scale, orientation='vertical', tick_format='0.2f', grid_lines='none')
fig = Figure(axes=[x_ax, y_ax_2], marks=[hist])
In [ ]:
display(fig)
In [ ]:
# Setting the tick values to be the mid points of the bins
x_ax.tick_values = hist.midpoints
In [ ]:
dates_all = np.arange('2005-02', '2005-03', dtype='datetime64[D]')
size = len(dates_all)
final_prices = 100 + 5 * np.cumsum(np.random.randn(size))
In [ ]:
## Log scale for the Y axis
dt_scale = DateScale()
lsc = LogScale()
ax_x = Axis(label='Date', scale=dt_scale, grid_lines='dashed')
lax_y = Axis(label='Log Price', scale=lsc, orientation='vertical', tick_format='0.1f', grid_lines='solid')
logline = Lines(x=dates_all, y=final_prices, scales={'x': dt_scale, 'y': lsc}, colors=['hotpink', 'orange'])
logfig = Figure(axes=[ax_x, lax_y], marks=[logline], fig_margin = dict(left=100, right=100, top=100, bottom=70))
display(logfig)
In [ ]:
# Plotting a bar and line chart on the same figure with x axis being an oridnal scale.
ord_scale = OrdinalScale()
lin_scale = LinearScale()
bar_chart = Bars(x=x_data[:10],
y=np.abs(y_data_3[:10]),
scales={'x': ord_scale, 'y': lin_scale},
colors=['hotpink', 'orange', 'limegreen'],
padding=0.5)
line_chart = Lines(x=x_data[:10],
y=np.abs(y_data[:10]),
scales={'x': ord_scale, 'y': lin_scale},
colors=['hotpink', 'orange', 'limegreen'])
bar_x = Axis(scale=ord_scale, orientation='horizontal', grid_lines='none',
set_ticks=True)
bar_y = Axis(scale=lin_scale, orientation='vertical', grid_lines='none')
fig_2 = Figure(axes=[bar_x, bar_y], marks=[bar_chart, line_chart])
display(fig_2)
In [ ]:
sc_x = LinearScale(min=10, max=50)
sc_y = LinearScale()
x_data = np.arange(100)
line_1 = Lines(x=x_data, y=y_data_2, scales={'x': sc_x, 'y': sc_y}, colors=['orange'])
ax_x = Axis(scale=sc_x)
ax_y = Axis(scale=sc_y, orientation='vertical', tick_format='.2f')
fig = Figure(marks=[line_1], axes=[ax_x, ax_y])
display(fig)
In [ ]:
## changing the min/max
sc_x.min = -10
sc_x.max = 110
In [ ]:
sc_x = LinearScale()
sc_y = LinearScale()
x_data = np.arange(50)
line_1 = Lines(x=x_data, y=y_data, scales={'x': sc_x, 'y': sc_y}, colors=['blue'])
line_2 = Lines(x=x_data, y=y_data * 2, scales={'x': sc_x, 'y': sc_y}, colors=['orangered'], preserve_domain={'y': True})
ax_x = Axis(scale=sc_x)
ax_y = Axis(scale=sc_y, orientation='vertical')
fig = Figure(marks=[line_1, line_2], axes=[ax_x, ax_y])
display(fig)
In [ ]:
with line_2.hold_sync():
line_2.preserve_domain={}
In [ ]:
sc_x = LinearScale()
sc_y = LinearScale()
sc_col = ColorScale(colors=['red', 'white', 'green'], mid=0.0)
x_data = np.arange(50)
scatt_1 = Scatter(x=x_data, y=y_data[:50], color=y_data[:50], scales={'x': sc_x, 'y': sc_y, 'color': sc_col},marker='circle')
scatt_2 = Scatter(x=x_data, y=y_data[:50] * 2, color=y_data[:50] * 2, scales={'x': sc_x, 'y': sc_y, 'color': sc_col},
preserve_domain={'color': True}, marker='cross')
ax_x = Axis(scale=sc_x)
ax_y = Axis(scale=sc_y, orientation='vertical')
fig = Figure(marks=[scatt_1, scatt_2], axes=[ax_x, ax_y])
display(fig)
In [ ]:
sc_x = LinearScale(reverse=True)
sc_y = LinearScale()
x_data = np.arange(50)
line_1 = Lines(x=x_data, y=y_data, scales={'x': sc_x, 'y': sc_y}, colors=['orange'])
ax_x = Axis(scale=sc_x)
ax_y = Axis(scale=sc_y, orientation='vertical')
fig = Figure(marks=[line_1], axes=[ax_x, ax_y])
display(fig)
In [ ]:
ord_scale = OrdinalScale(domain=list(range(20)))
y_scale = LinearScale()
bar_chart = Bars(x=x_data[:10],
y=[(y_data[:10]), y_data_2[:10] * 100, y_data_3[:10]],
scales={'x': ord_scale, 'y': y_scale},
colors=['hotpink', 'orange', 'limegreen'],
labels=['Component 1', 'Component 2', 'Component 3'],
display_legend=True)
bar_x = Axis(scale=ord_scale, orientation='horizontal', set_ticks=True, grid_lines='none')
bar_y = Axis(scale=y_scale, orientation='vertical', grid_lines='none')
fig_2 = Figure(axes=[bar_x, bar_y], marks=[bar_chart])
display(fig_2)
In [ ]:
sc_x = LinearScale(min=10, max=90)
sc_y = LinearScale()
x_data = np.arange(100)
line_1 = Lines(x=x_data, y=y_data_3, scales={'x': sc_x, 'y': sc_y}, colors=['orange'], labels=['Clipped Line'],
display_legend=True)
line_2 = Lines(x=x_data, y=y_data, scales={'x': sc_x, 'y': sc_y}, apply_clip=False, colors=['orangered'],
labels=['Non clipped line'], display_legend=True)
ax_x = Axis(scale=sc_x)
ax_y = Axis(scale=sc_y, orientation='vertical')
fig = Figure(marks=[line_1, line_2], axes=[ax_x, ax_y])
display(fig)