def test_write_banner(self): self.submenu.add_page(self.page) (_, testbanner) = tempfile.mkstemp(suffix='.jpg') self.webviz = Webviz('test portal', banner_image=testbanner, theme='minimal') self.webviz.add(self.submenu) folder = tempfile.mkdtemp() self.webviz.write_html(folder, overwrite=True) absolute_banner_filename = os.path.join(folder, self.webviz.banner_filename) self.assertTrue(os.path.isfile(absolute_banner_filename)) shutil.rmtree(folder)
def test_special_character_title(self): web = Webviz("øæåõ", theme='minimal') web.add(Page("øæå~")) web.add(Page("øæå~ÆÆÆAAAÅÅÅ")) folder = tempfile.mkdtemp() web.write_html(folder, overwrite=True, display=False) shutil.rmtree(folder)
def test_js_dump(self): self.json_content[self.key] = self.value web = Webviz('title', theme='minimal') page = Page('pagetitle') page.add_content(self.json_content) web.add(page) tempdir = tempfile.mkdtemp() web.write_html(tempdir, overwrite=True, display=False)
def test_js_dump(self): self.json_content[self.key] = self.value web = Webviz('title', theme='minimal') page = Page('pagetitle') page.add_content(self.json_content) web.add(page) tempdir = tempfile.mkdtemp() web.write_html(tempdir, overwrite=True, display=False) js_deps = self.json_content.get_js_dep() path.isfile(path.join(tempdir, 'resources', 'js', js_deps[0].name))
from webviz import Webviz, Page, SubMenu web = Webviz('Main title', theme='default') ex1 = Page('Example 1') ex2 = Page('Example 2') submenu1 = SubMenu('Menu 1') submenu2 = SubMenu('Menu 2') submenu1.add_page(ex1) submenu2.add_page(ex2) web.add(submenu1) web.add(submenu2) page3 = Page('Example 3') web.add(page3) web.write_html("./webviz_tutorial", overwrite=True, display=False)
from webviz import Webviz, Page from webviz.page_elements import Map import pandas as pd import numpy as np from pandas.compat import StringIO web = Webviz('Map Example') data = pd.read_csv(StringIO(""" i,j,k,x0,y0,x1,y1,x2,y2,x3,y3,value,FLOWI+,FLOWJ+ 0,0,0,0,0,1,0,1,1,0,1,1,0.005,0.0025 1,0,0,1,0,2,0,2,1,1,1,0,0.002,0.0045 0,1,0,0,1,1,1,1,2,0,2,4,0.001,0.0025 1,1,0,1,1,2,1,2,2,1,2,2,0.004,0.0035 """)) data.set_index(['i', 'j', 'k'], inplace=True) web.index.add_content(Map(data)) web.write_html("./webviz_example", overwrite=True, display=False)
from webviz import Webviz, Page import pandas as pd from webviz.page_elements import PieChart web = Webviz('Pie Chart Example') page = Page('Pie Chart') frame = pd.DataFrame([[19, 26, 55], [33, 14, 55]], columns=['sector 1', 'sector 2', 'sector 3']) page.add_content(PieChart(frame)) web.add(page) web.write_html("./webviz_example", overwrite=True, display=False)
from webviz import Webviz, Page from webviz.page_elements import Histogram import pandas as pd import numpy as np web = Webviz('Histogram Example') page = Page('Histogram') normal = [x for x in np.random.normal(size=1000).tolist()] poisson = [x for x in np.random.poisson(10, 1000).tolist()] triangular = [x for x in np.random.triangular(0, 10, 20, 1000).tolist()] data = pd.DataFrame({ 'normal': normal, 'poisson': poisson, 'triangular': triangular }) page.add_content(Histogram(data, nbinsx=20)) web.add(page) web.write_html("./webviz_example", overwrite=True, display=False)
class TestWebviz(unittest.TestCase): def setUp(self): self.page = Page('test page') self.submenu = SubMenu('test page') self.webviz = Webviz('test portal', theme='minimal') def test_non_theme(self): with self.assertRaises(ValueError): Webviz(title='bomb', theme=3.14) @patch('webviz._webviz.webbrowser') def test_display(self, webbrowser_mock): folder = tempfile.mkdtemp() self.webviz.write_html(folder, True, True) shutil.rmtree(folder) webbrowser_mock.open_new_tab.assert_called_once() def test_add_non_page(self): with self.assertRaises(ValueError): self.webviz.add('not a page or SubMenu') def test_add_page(self): self.webviz.add(self.page) self.assertIn(self.page, self.webviz.menu) def test_add_submenu(self): self.submenu.add_page(self.page) self.webviz.add(self.submenu) self.assertIn(self.submenu, self.webviz.menu) self.assertIn(self.page, self.webviz.pages) def test_render(self): self.submenu.add_page(self.page) self.webviz.add(self.submenu) folder = tempfile.mkdtemp() self.webviz.write_html(folder, overwrite=True) shutil.rmtree(folder) def test_overwrite(self): self.submenu.add_page(self.page) self.webviz.add(self.submenu) folder = tempfile.mkdtemp() self.webviz.write_html(folder, overwrite=True) with self.assertRaises(ValueError): self.webviz.write_html(folder, overwrite=False) self.webviz.write_html(folder, overwrite=True) shutil.rmtree(folder) def test_write_banner(self): self.submenu.add_page(self.page) (_, testbanner) = tempfile.mkstemp(suffix='.jpg') self.webviz = Webviz('test portal', banner_image=testbanner, theme='minimal') self.webviz.add(self.submenu) folder = tempfile.mkdtemp() self.webviz.write_html(folder, overwrite=True) absolute_banner_filename = os.path.join(folder, self.webviz.banner_filename) self.assertTrue(os.path.isfile(absolute_banner_filename)) shutil.rmtree(folder)
#!/usr/bin/env python # -*- coding: utf-8 -*- """ Example of adding tornado plots to webviz project before running, currently using: source /project/res/komodo/testing/enable for webviz """ from __future__ import division, print_function, absolute_import from fmu.tools.sensitivities import add_webviz_tornadoplots from webviz import Webviz html_foldername = "./webviz_example" title = "Snorreberg" web = Webviz(title, theme="equinor") configpath = "../tests/data/sensitivities/config/" # add different types of plots to webportal add_webviz_tornadoplots(web, configpath + "config_example_geovolume_ensemble.yaml") add_webviz_tornadoplots(web, configpath + "config_example_geovolume.yaml") add_webviz_tornadoplots(web, configpath + "config_example_eclipse.yaml") # Finally, write html web.write_html(html_foldername, overwrite=True, display=True)
def setUp(self): self.page = Page('test page') self.submenu = SubMenu('test page') self.webviz = Webviz('test portal', theme='minimal')
from webviz import Webviz, Page from webviz_default_theme import default_theme from six import iteritems web = Webviz('Icon example', theme='default') for name, _ in iteritems(default_theme.icons): web.add(Page(name, icon=name)) web.write_html("./webviz_example", overwrite=True, display=False)
from webviz import Webviz, Page from webviz.page_elements import ScatterPlotMatrix import pandas as pd web = Webviz('Scatter Plot Matrix Example') page = Page('Scatter Plot Matrix') point1 = [10.6, 15, 13.4, 17] point2 = [16, 5, 11, 9.7] point3 = [51, 25.6, 51, 23] point4 = [19, 75.1, 23, 49] name = ['name1', 'name1', 'name2', 'name2'] points = pd.DataFrame({ 'point1': point1, 'point2': point2, 'point3': point3, 'point4': point4, 'name': name }) page.add_content(ScatterPlotMatrix(points)) web.add(page) web.write_html("./webviz_example", overwrite=True, display=False)
from webviz import Webviz, Page from webviz.page_elements import TornadoPlot import pandas as pd web = Webviz('Tornado Plot Example') page = Page('Tornado Plot') high = [0.8, 1, 0.3, 0.4] low = [0.5, -0.7, -.5, -0.1] index = ['A', 'B', 'C', 'D'] bars = pd.DataFrame({'low': low, 'high': high}, index=index) plot = TornadoPlot(bars) plot.add_annotation(x=low[1], y=index[1], ay=0, ax=-20, text='label') page.add_content(plot) web.add(page) web.write_html("./webviz_example", overwrite=True, display=False)
import sys from webviz import Webviz banner_image = sys.argv[1] # e.g. 'logo.jpg' web = Webviz('title', banner_title='My banner', banner_image=sys.argv[1], theme='minimal', copyright_notice='My copyright notice') web.write_html("./webviz_example", overwrite=True, display=False)
from webviz import Webviz, Page, SubMenu web = Webviz('Title', theme='default') page = Page('Page') menu = SubMenu('Menu') menu.add_page(page) web.add(menu) web.write_html("./webviz_example", overwrite=True, display=False)
from webviz import Webviz, Page, SubMenu, Markdown web = Webviz('Main title', theme='minimal') ex1 = Page('Example 1') ex2 = Page('Example 2') ex3 = Page('Markdown example') some_content = (r""" # Markdown support *** > __You can pass markdown wihin a triple-quotes__<br> > _Also known as multiline comments_ |First Header | Second Header | Third Header | |:-------------|:-------------: | ------------:| |Content Cell | `Content Cell` | Content | |Content Cell | Content Cell | Content | --- #!python def hello(): print('Hello World') --- If you want to use math formulas, you have several different options. You can use double dollar signs: ```
def test_non_theme(self): with self.assertRaises(ValueError): Webviz(title='bomb', theme=3.14)