def test_plotly(remove_build): """Tests plotly.""" viz = Plotly() ctrl = Nouislider() ctrl2 = Button() path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'build') layout = Layout(directory=path) layout.add(viz) layout.add_sidebar(ctrl) layout.add_sidebar(ctrl2) layout.subscribe(callback, ctrl.on_change) layout.subscribe(callback, ctrl2.on_click) layout.build() env = os.environ env['PYTHONPATH'] = '{}:{}'.format(os.getcwd(), os.environ.get('PYTHONPATH', '')) server = subprocess.Popen(os.path.join(path, 'src/server.py'), env=env) time.sleep(5) driver = PhantomJS() driver.get('http://localhost:9991') assert driver.title == 'Bowtie App' server.kill()
def test_build(remove_build): ctrl = Nouislider() viz = Plotly() layout = Layout() layout.add_controller(ctrl) layout.add_visual(viz) layout.subscribe(ctrl.on_change, callback) layout.build()
def test_build(remove_build): """Tests the build process.""" ctrl = Nouislider() viz = Plotly() path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'build') layout = Layout(directory=path) layout.add_sidebar(ctrl) layout.add(viz) layout.subscribe(callback, ctrl.on_change) layout.build()
def test_build(build_path): """Tests the build process.""" reset_uuid() ctrl = Nouislider() viz = Plotly() app = App(directory=build_path) app.add_sidebar(ctrl) app.add(viz) app.subscribe(callback, ctrl.on_change) app.build()
def test_build(build_path): """Tests the build process.""" reset_uuid() ctrl = Nouislider() viz = Plotly() layout = Layout(directory=build_path) layout.add_sidebar(ctrl) layout.add(viz) layout.subscribe(callback, ctrl.on_change) layout.build()
def test_build(build_reset, monkeypatch): """Tests the build process.""" reset_uuid() ctrl = Nouislider() viz = Plotly() app = App(__name__, sidebar=True) app.add_sidebar(ctrl) app.add(viz) app.subscribe(ctrl.on_change)(callback) # pylint: disable=protected-access app._build()
def test_build(build_path, monkeypatch): """Tests the build process.""" monkeypatch.setattr(App, '_sourcefile', lambda self: 'bowtie.tests.test_compile') reset_uuid() ctrl = Nouislider() viz = Plotly() app = App() app.add_sidebar(ctrl) app.add(viz) app.subscribe(callback, ctrl.on_change) # pylint: disable=protected-access app._build()
#!/usr/bin/env python """Example Bowtie App.""" from bowtie import App from bowtie.control import Nouislider from bowtie.visual import Plotly from bowtie import Pager, cache, command import numpy as np from numpy import random as rng import plotlywrapper as pw app = App(debug=True, sidebar=True) pager = Pager() sigma = Nouislider(start=0., minimum=0.1, maximum=50.) mainplot = Plotly() app.add_sidebar(sigma) app.add(mainplot) def initialize(): cache.save('data', [0.] * 100) @app.subscribe(pager) def upgraph(): data = cache.load('data') value = float(sigma.get()) data.pop(0) data.append(value * rng.randn() + data[-1])
''' The only working example in bowtie so far. ¯\(°_o)/¯ python 2.7 bowtie==0.3.2 ''' from bowtie.visual import Plotly from bowtie.control import Nouislider import numpy as np import plotlywrapper as pw sine_plot = Plotly() freq_slider = Nouislider(caption='frequency', minimum=1, maximum=10, start=5) def listener(freq): freq = float(freq[0]) t = np.linspace(0, 10, 100) sine_plot.do_all(pw.line(t, np.sin(freq * t)).to_json()) from bowtie import command @command def construct(path): from bowtie import Layout layout = Layout(directory=path) layout.add_sidebar(freq_slider) layout.add(sine_plot) layout.subscribe(listener, freq_slider.on_change) layout.build()
import subprocess import time import pytest from plotly.graph_objs import Scatter from plotly.graph_objs import Layout as PlotLayout from bowtie import App from bowtie.control import Nouislider, Button from bowtie.visual import Plotly from bowtie.tests.utils import reset_uuid reset_uuid() # pylint: disable=invalid-name viz = Plotly() ctrl = Nouislider() ctrl2 = Button() def callback(*args): """dummy function""" # pylint: disable=unused-argument chart = { "data": [Scatter(x=[1, 2, 3, 4], y=[4, 1, 3, 7])], "app": PlotLayout(title="hello world") } viz.do_all(chart) # pylint: disable=unused-argument
business = pd.read_pickle('yelp_business.pkl.gz') checkin = pd.read_pickle('yelp_checkin.pkl.gz') reviews = pd.read_pickle('reviewsub.pkl.gz') def dropdown_categories(): allcats = business.categories.str.split(';') cats = [] for cat in allcats: cats += cat categories = sorted(set(cats)) return Dropdown(values=categories, labels=categories, caption='Category') catdd = dropdown_categories() stars = Plotly() revdate = Plotly() busy = Plotly() def gen_stars(label): buss1 = business[business.categories.str.contains(label)] cache['bids'] = buss1.business_id chart = pw.scatter(buss1.review_count, buss1.stars, text=buss1.name) chart.xlabel('reviews') chart.ylabel('stars') chart.title(label) chart.layout['hovermode'] = 'closest' return chart
iris = datasets.load_iris() attrs = iris.feature_names axis_map = { "sepal length (cm)": 0, "sepal width (cm)": 1, "petal length (cm)": 2, "petal width (cm)": 3, } xdown = Dropdown(caption='X variable', labels=attrs, values=attrs) ydown = Dropdown(caption='Y variable', labels=attrs, values=attrs) clslider = Slider(caption='Cluster count', start=3, minimum=1, maximum=9) kplot = Plotly() def Kplot(x, y, N): if x is None or y is None or N is None: return x_var = xdown.get()['value'] y_var = ydown.get()['value'] x = axis_map[x_var] y = axis_map[y_var] N = clslider.get() k_means = KMeans(n_clusters= N) k_means.fit(iris.data) palette = sns.palettes.color_palette('hls', N) colormap = np.array(palette.as_hex())[k_means.labels_] data = go.Scatter(
from sklearn.kernel_ridge import KernelRidge iris = pd.read_csv('./iris.csv') iris = iris.drop(iris.columns[0], axis=1) attrs = iris.columns[:-1] xdown = DropDown(caption='X variable', labels=attrs, values=attrs) ydown = DropDown(caption='Y variable', labels=attrs, values=attrs) zdown = DropDown(caption='Z variable', labels=attrs, values=attrs) alphaslider = Slider(caption='alpha parameter', start=10, minimum=1, maximum=50) mainplot = Plotly() mplot3 = Plotly() linear = Plotly() table1 = SmartGrid() def pairplot(x, y): print('hellox') if x is None or y is None: return x = x['value'] y = y['value'] plot = pw.Chart() for i, df in iris.groupby('Species'): plot += pw.scatter(df[x], df[y], label=i) plot.xlabel(x)