Пример #1
0
    def __init__(self, **kwargs):
        super(self.__class__, self).__init__(**kwargs)

        colours = [
            "black", "red", "orange", "yellow", "green", "blue", "magenta",
            "cyan"
        ]

        # allow toggling of SVG draw mode
        draw_toggle_values = [
            "select", "rect", "circle", "ellipse", "line", "path"
        ]
        self.draw_toggle = widgets.ToggleButtonsWidget(
            values=draw_toggle_values, description="Choose drawing tool:")

        # set up the stroke controls
        self.stroke_picker = widgets.DropdownWidget(
            values=colours, description="Stroke colour:")
        self.stroke_width_slider = widgets.FloatSliderWidget(
            min=0, max=20, value=3, description="Stroke width:")

        self.stroke_container = HorizontalContainerWidget()
        self.stroke_container.children = [
            self.stroke_picker, self.stroke_width_slider
        ]

        # set up the fill controls
        self.fill_picker = widgets.DropdownWidget(values=["none"] + colours,
                                                  description="Fill colour:")
        self.fill_opacity_slider = widgets.FloatSliderWidget(
            min=0, max=1, value=0.5, description="Fill opacity:")

        self.fill_container = HorizontalContainerWidget()
        self.fill_container.children = [
            self.fill_picker, self.fill_opacity_slider
        ]

        # the main SVG
        self.svg = SVGWidget()

        # border the SVG
        self.svg.set_css('border', '1px solid black')

        # link the control widgets to the SVG control variables
        self.mode_link = traitlets.link((self.draw_toggle, 'value'),
                                        (self.svg, 'mode'))
        self.stroke_link = traitlets.link((self.stroke_picker, 'value'),
                                          (self.svg, 'stroke'))
        self.stroke_width_link = traitlets.link(
            (self.stroke_width_slider, 'value'), (self.svg, 'stroke_width'))
        self.fill_link = traitlets.link((self.fill_picker, 'value'),
                                        (self.svg, 'fill'))
        self.fill_opacity_link = traitlets.link(
            (self.fill_opacity_slider, 'value'), (self.svg, 'fill_opacity'))

        # define the main container's children
        self.children = [
            self.draw_toggle, self.stroke_container, self.fill_container,
            self.svg
        ]
def plotrot3Dpersp(gieren = widgets.FloatSliderWidget(min=-180.0, max=180.0, step=1.0, value=0.0, description=""), \
                   nicken = widgets.FloatSliderWidget(min=-180.0, max=180.0, step=1.0, value=0.0, description=""), \
                   wanken = widgets.FloatSliderWidget(min=-180.0, max=180.0, step=1.0, value=0.0, description="")):
    
    R = Rypr(gieren, nicken, wanken)
    print('%s' % R)
    x, y, z = R*g
    
    hor = (0, 90, 45)
    vert= (90, 0, 45)
    tit = ('Seitenansicht', 'Draufsicht', '3D')
    fig = plt.figure(figsize=(15,4.5))
    for subplotnumber in range(3):
        ax = fig.add_subplot(1,3, subplotnumber, projection='3d')
        
        ax.plot([0, x], [0, y], [0, z], label='$g \cdot R$')
        ax.plot([0, g[0]], [0, g[1]], [0, g[2]], label='$g$')
        
        ax.scatter(0,0,0, color='k')
        
        ax.axis('equal')
        ax.view_init(hor[subplotnumber], vert[subplotnumber])
        plt.xlabel('X')
        plt.ylabel('Y')
        plt.xlim(-1, 1)
        plt.ylim(-1, 1)
        plt.title(tit[subplotnumber] + '\nG: %i, N: %i, W: %i' % (gieren, nicken, wanken))
        ax.set_zlim3d(-1, 1)
        plt.legend(loc='best');
        plt.tight_layout()
Пример #3
0
def plotmultivargauss(wd = widgets.FloatSliderWidget(min=0.005, max=1.0, step=0.005, value=0.05, description=""), \
                      phib = widgets.FloatSliderWidget(min=0.01, max=1.0, step=0.01, value=0.01, description=""), \
                      d = widgets.FloatSliderWidget(min=0.0, max=10.0, step=0.1, value=1.0, description=""), \
                      phi = widgets.FloatSliderWidget(min=-1.0, max=1.0, step=0.1, value=0.6, description=""), \
                      wb = widgets.FloatSliderWidget(min=0.01, max=1.0, step=0.01, value=0.01, description="")):

    dd = 1.0/np.tan(phib/2.0) * wb/2
    
    p = {}
    p['p1'] = (((d+dd-wd) * np.cos(phi-phib)) - dd*np.cos(phi), ((d+dd-wd) * np.sin(phi-phib)) - dd*np.sin(phi))
    p['p2'] = (((d+dd+wd) * np.cos(phi-phib)) - dd*np.cos(phi), ((d+dd+wd) * np.sin(phi-phib)) - dd*np.sin(phi))
    p['p3'] = (((d+dd-wd) * np.cos(phi+phib)) - dd*np.cos(phi), ((d+dd-wd) * np.sin(phi+phib)) - dd*np.sin(phi))
    p['p4'] = (((d+dd+wd) * np.cos(phi+phib)) - dd*np.cos(phi), ((d+dd+wd) * np.sin(phi+phib)) - dd*np.sin(phi))
    
    plt.figure(figsize=(10,5))
    plt.subplot(121)
    [plt.scatter(v[0], v[1], s=10) for k,v in p.iteritems()]
    plt.plot((0, d*np.cos(phi)), (0, d*np.sin(phi)), c='r', alpha=0.5)
    plt.axis('equal')
    plt.title('Error Bounding Box')
    plt.scatter(0,0, s=50, c='k', label='Sensor')

    plt.subplot(122)
    [plt.scatter(v[0], v[1], s=100) for k,v in p.iteritems()]
    plt.axis('equal')
    axlims = plt.axis()
    plt.plot((0, d*np.cos(phi)), (0, d*np.sin(phi)), c='r', alpha=0.5)
    plt.axis(axlims)
    plt.title('Error Bounding Box (Zoom In)')

    plt.tight_layout()
    
    return plt
Пример #4
0
def plotmultivargauss(wd = widgets.FloatSliderWidget(min=0.005, max=1.0, step=0.005, value=0.05, description=""), \
                      phib = widgets.FloatSliderWidget(min=0.01, max=1.0, step=0.01, value=0.01, description=""), \
                      d = widgets.FloatSliderWidget(min=0.0, max=10.0, step=0.1, value=1.0, description=""), \
                      phi = widgets.FloatSliderWidget(min=-1.0, max=1.0, step=0.1, value=0.6, description="")):

    p = {}
    p['p1'] = ((d-wd) * np.cos(phi-phib), (d-wd) * np.sin(phi-phib))
    p['p2'] = ((d+wd) * np.cos(phi-phib), (d+wd) * np.sin(phi-phib))
    p['p3'] = ((d+wd) * np.cos(phi+phib), (d+wd) * np.sin(phi+phib))
    p['p4'] = ((d-wd) * np.cos(phi+phib), (d-wd) * np.sin(phi+phib))
    
    plt.figure(figsize=(10,5))
    plt.subplot(121)
    [plt.scatter(v[0], v[1], s=10) for k,v in p.iteritems()]
    plt.plot((0, d*np.cos(phi)), (0, d*np.sin(phi)), c='r', alpha=0.5)
    plt.axis('equal')
    plt.xlabel('x [$m$]')
    plt.ylabel('y [$m$]')
    plt.title('Error Bounding Box')
    plt.scatter(0,0, s=50, c='k', label='Sensor')

    plt.subplot(122)
    [plt.scatter(v[0], v[1], s=100) for k,v in p.iteritems()]
    plt.axis('equal')
    axlims = plt.axis()
    plt.plot((0, d*np.cos(phi)), (0, d*np.sin(phi)), c='r', alpha=0.5)
    plt.axis(axlims)
    plt.title('Error Bounding Box (Zoom In)')

    plt.tight_layout()
    #plt.savefig('InverseSensorModel-Langerwisch-BoundingBox.png', dpi=150)
    return plt
def plotmultivargauss(az=widgets.FloatSliderWidget(min=-90.0,
                                                   max=90.0,
                                                   step=1.0,
                                                   value=45.0,
                                                   description=""),
                      el=widgets.FloatSliderWidget(min=-180.0,
                                                   max=180.0,
                                                   step=1.0,
                                                   value=-115.0,
                                                   description="")):

    plot3Dgrid(grid, az, el)
Пример #6
0
def interactA():
    widH = widgets.IntSliderWidget(min=0, max=1000, step=1, value=100)
    widZ = widgets.IntSliderWidget(min=0, max=1000, step=1, value=1)
    wida = widgets.FloatSliderWidget(min=0.01, max=1, step=0.01, value=0.05)
    widb = widgets.FloatSliderWidget(min=0.1, max=1, step=0.05, value=0.3)
    widz = widgets.FloatSliderWidget(min=0.01, max=0.5, step=0.01, value=0.2)
    interact(graficaSolucionA,
             humanos=widH,
             zombies=widZ,
             muertos=fixed(0),
             a=wida,
             b=(0.1, 1, 0.05),
             z=(0.01, 0.5, 0.01))
Пример #7
0
        def __init__(self, *args, **kwargs):
            
            self.defaults = dict(
                  metabotype=METABOTYPE_ALL,
                  database=DATABASE_HMDB,
                  ph=SAMPLE_PH7_10,
                  solvent=SOLVENT_WATER,
                  frequency=FREQUENCY_600,
                  method=METHOD_HIGHEST_NUMBER_NEIGHBOURHOOD,
                  noise=DEFAULT_NOISE_THRESHOLD,
                  confidence=DEFAULT_CONFIDENCE_THRESHOLD,
                  tolerance=DEFAULT_TOLERANCE
            )
            
            # Overwrite the settings using kwargs passed on create
            self.settings = dict( self.defaults.items() + kwargs.items() )

            # Set up widgets
            self.form = widgets.ContainerWidget()
            self.form.set_css({'width':'20ex'}, selector='.widget-hlabel')
            
            w_metabotype = widgets.DropdownWidget(description="Metabotype:", value=self.settings['metabotype'], values=METABOTYPES)
            w_metabotype.on_trait_change(lambda t, value: self.set_value('metabotype', value), 'value' )
            
            w_database = widgets.DropdownWidget(description="Database:", value=self.settings['database'], values=DATABASES)
            w_database.on_trait_change(lambda t, value: self.set_value('database', value), 'value' )
            
            w_ph = widgets.DropdownWidget(description="pH:", value=self.settings['ph'], values=SAMPLE_PHS)
            w_ph.on_trait_change(lambda t, value: self.set_value('ph', value), 'value' )

            w_solvent = widgets.DropdownWidget(description="Solvent:", value=self.settings['solvent'], values=SOLVENTS)
            w_solvent.on_trait_change(lambda t, value: self.set_value('solvent', value), 'value' )
            
            w_frequency = widgets.DropdownWidget(description="Frequency MHz:", value=self.settings['frequency'], values=FREQUENCIES)
            w_frequency.on_trait_change(lambda t, value: self.set_value('frequency', value), 'value' )
            
            w_method = widgets.DropdownWidget(description="Method:", value=self.settings['method'], values=METHODS)
            w_method.on_trait_change(lambda t, value: self.set_value('method', value), 'value' )
            
            w_noise = widgets.FloatSliderWidget(description="Noise threshold:", value=self.settings['noise'], min=0., max=10., step=0.01)
            w_noise.on_trait_change(lambda t, value: self.set_value('noise', value), 'value' )

            w_confidence = widgets.FloatSliderWidget(description="Confidence threshold:", value=self.settings['confidence'], min=0., max=1., step=0.1)
            w_confidence.on_trait_change(lambda t, value: self.set_value('confidence', value), 'value' )

            w_tolerance = widgets.FloatSliderWidget(description="Shift tolerance:", value=self.settings['tolerance'], min=0., max=10., step=0.01)
            w_tolerance.on_trait_change(lambda t, value: self.set_value('tolerance', value), 'value' )

            self.form.children = [ w_metabotype, w_database, w_ph, w_solvent, w_frequency, 
                                   w_method, w_noise, w_confidence, w_tolerance]
Пример #8
0
def factorizer():
    box = widgets.ContainerWidget()
    header = widgets.HTMLWidget(value="<h1>Integer Factorizer</h1><br>")
    number = widgets.IntSliderWidget(description="Number:", value=100)
    speed = widgets.FloatSliderWidget(description="Delay:",
                                      min=0.0,
                                      max=0.2,
                                      value=0.1,
                                      step=0.01)

    subbox = widgets.ContainerWidget()
    button = widgets.ButtonWidget(description="Calculate")
    subbox.children = [button]

    box.children = [header, number, speed, subbox]
    display(box)

    box.add_class('align-center')
    box.add_class('center')
    box.add_class('well well-small')
    box.set_css('width', 'auto')

    subbox.remove_class('vbox')
    subbox.add_class('hbox')

    # subbox.add_class('end')

    def handle_caclulate(sender):
        plot_primes(number.value, delay=speed.value)

    button.on_click(handle_caclulate)
Пример #9
0
def interactB():
    widH = widgets.IntSliderWidget(min=0, max=1000, step=1, value=100)
    widZ = widgets.IntSliderWidget(min=0, max=1000, step=1, value=1)
    widI = widgets.IntSliderWidget(min=0, max=10, step=1, value=0)
    wida = widgets.FloatSliderWidget(min=0.01, max=1, step=0.01, value=0.05)
    widb = widgets.FloatSliderWidget(min=0.1, max=1, step=0.05, value=0.6)
    widz = widgets.FloatSliderWidget(min=0.01, max=0.5, step=0.01, value=0.2)
    widr = widgets.FloatSliderWidget(min=0.1, max=1, step=0.05, value=0.9)
    interact(solucionB,
             humanos=widH,
             infectados=widI,
             zombies=widZ,
             muertos=fixed(0),
             a=wida,
             b=widb,
             z=widz,
             r=widr)
Пример #10
0
def plotmultivargauss(sigmaz = widgets.FloatSliderWidget(min=0.01, max=5.0, step=0.01, value=0.3, description=""), \
                      sigmat = widgets.FloatSliderWidget(min=0.01, max=1.0, step=0.01, value=0.2, description=""), \
                      dxy = widgets.FloatSliderWidget(min=0.0, max=9.0, step=0.1, value=4.0, description=""), \
                      txy = widgets.FloatSliderWidget(min=-1.0, max=1.0, step=0.1, value=0.0, description="")):
    
    x,y,P = calcmultivargauss(sigmaz, sigmat, dxy, txy)
    
    plt.contourf(x, y, P, cmap=cm.gray_r)
    plt.scatter(0, 0, s=250, c='k')
    plt.plot([0, 10*np.cos(np.max(ts))],[0, 10*np.sin(np.max(ts))], '--k')
    plt.plot([0, 10*np.cos(np.min(ts))],[0, 10*np.sin(np.min(ts))], '--k')
    plt.xlabel('X');
    plt.ylabel('Y');
    plt.xlim([0, 8]);
    plt.ylim([-4, 4]);
    
    return plt
Пример #11
0
 def pick_hard_threshold(self):
     w = interactive(self._soft_threshold,
                     method=('spearman', 'pearson', 'kendall'),
                     power=widgets.FloatSliderWidget(min=0,
                                                     max=.99,
                                                     step=.01,
                                                     value=0.5),
                     signed=True)
     display(w)
Пример #12
0
def plotrot3Dpersp(gieren = widgets.FloatSliderWidget(min=-180.0, max=180.0, step=1.0, value=-120.0, description=""), \
                   nicken = widgets.FloatSliderWidget(min=-180.0, max=180.0, step=1.0, value=0.0, description=""), \
                   wanken = widgets.FloatSliderWidget(min=-180.0, max=180.0, step=1.0, value=60.0, description=""), \
                   kippen = widgets.FloatSliderWidget(min=0.0, max=90.0, step=1.0, value=2.0, description=""), \
                   rotieren = widgets.FloatSliderWidget(min=-180.0, max=180.0, step=1.0, value=100.0, description="")):
    
    R = Rypr(gieren, nicken, wanken)
    print('%s' % R)

    x, y, z = R * np.array([pc.values]).T
    
    fig = plt.figure(figsize=(14,6))
    ax = Axes3D(fig)
    ax.scatter(x.tolist(), y.tolist(), z.tolist())
    ax.axis('equal')
    ax.set_zlim3d(-6.0, 1.0)
    plt.xlabel('x');
    plt.ylabel('y');
    plt.title('\nG: %i, N: %i, W: %i' % (gieren, nicken, wanken))
    ax.view_init(kippen, rotieren)
def plotGridLayer(z=widgets.FloatSliderWidget(min=0,
                                              max=np.max(grid.shape[2]) - 1,
                                              step=1,
                                              value=10,
                                              description="")):
    plt.figure(figsize=(l / 2, b / 2))
    plt.contourf(grid[:, :, z], cmap=cm.Greens)
    plt.colorbar(label='log-odd(p)')
    plt.axis('equal')
    plt.title('z-Layer: %i' % z)
    plt.xlabel('X')
    plt.ylabel('Y')
def plotrot3Dpersp(a = widgets.FloatSliderWidget(min=-0.99, max=0.99, step=0.01, value=0.0, description=""), \
                   b = widgets.FloatSliderWidget(min=-1.0, max=1.0, step=0.01, value=1.0, description=""), \
                   c = widgets.FloatSliderWidget(min=-1.0, max=1.0, step=0.01, value=0.0, description=""), \
                   d = widgets.FloatSliderWidget(min=-1.0, max=1.0, step=0.01, value=0.0, description="")):

    q = np.array([a, b, c, d])
    
    R = QtoR(q)
    print('Rotationsmatrix aus Quaternion\n%s' % R)
    
    gieren, nicken, wanken = Q2Eul(q)
    
    x, y, z = R*g

    hor = (0, 90, 45)
    vert= (90, 0, 45)
    tit = ('Seitenansicht', 'Draufsicht', '3D')
    fig = plt.figure(figsize=(15,4.5))
    for subplotnumber in range(3):
        ax = fig.add_subplot(1,3, subplotnumber, projection='3d')
        
        ax.plot([0, x], [0, y], [0, z], label='$g \cdot R$')
        ax.plot([0, g[0]], [0, g[1]], [0, g[2]], label='$g$')
        
        # Drehachse einzeichnen
        w, n = Q2DuD(q)
        ax.plot([0, n[0]], [0, n[1]], [0, n[2]], label='$n_R$', color='gray')
        
        ax.scatter(0,0,0, color='k')
        
        ax.axis('equal')
        ax.view_init(hor[subplotnumber], vert[subplotnumber])
        plt.xlabel('X')
        plt.ylabel('Y')
        plt.title(tit[subplotnumber] + '\nG: %i, N: %i, W: %i' % (gieren, nicken, wanken))
        plt.xlim(-1, 1)
        plt.ylim(-1, 1)
        ax.set_zlim3d(-1, 1)
        plt.legend(loc='best');
        plt.tight_layout()
Пример #15
0
    def interact(self):

        self.itcs.positionMasts(self.mastCoords, self.mastHeights)

        swExtent = self.mastCoords.min(axis=0)
        neExtent = self.mastCoords.max(axis=0)

        w = widgets.interactive(
            self.posPlatform,
            xPlat=widgets.FloatSliderWidget(min=swExtent[0],
                                            max=neExtent[0],
                                            value=self.platCoord[0],
                                            step=1.0),
            yPlat=widgets.FloatSliderWidget(min=swExtent[1],
                                            max=neExtent[1],
                                            value=self.platCoord[1],
                                            step=1.0),
            height=widgets.FloatSliderWidget(min=0,
                                             max=200,
                                             value=self.platHeight),
            weight=widgets.FloatSliderWidget(min=0, max=1000, value=500))

        display.display(w)
Пример #16
0
def interactC():
    widH = widgets.IntSliderWidget(min=0, max=1000, step=1, value=100)
    widZ = widgets.IntSliderWidget(min=0, max=1000, step=1, value=1)
    widI = widgets.IntSliderWidget(min=0, max=10, step=1, value=0)
    wida = widgets.FloatSliderWidget(min=0.01, max=1, step=0.01, value=0.05)
    widb = widgets.FloatSliderWidget(min=0.1, max=1, step=0.05, value=0.85)
    widz = widgets.FloatSliderWidget(min=0.01, max=0.5, step=0.01, value=0.09)
    widr = widgets.FloatSliderWidget(min=0.1, max=1, step=0.05, value=0.8)
    widk = widgets.FloatSliderWidget(min=0.1, max=1, step=0.1, value=0.3)
    wids = widgets.FloatSliderWidget(min=0.01, max=0.5, step=0.01, value=0.01)
    widg = widgets.FloatSliderWidget(min=0.1, max=1, step=0.1, value=0.6)
    interact(solucionC,
             humanos=widH,
             infectados=widI,
             zombies=widZ,
             muertos=fixed(0),
             cuarentena=fixed(0),
             a=wida,
             b=widb,
             z=widz,
             r=widr,
             k=widk,
             s=wids,
             g=widg)
def plotmultivargauss(z = widgets.FloatSliderWidget(min=0, max=np.max(grid.shape[2])-1, step=1, value=10, description="")):
    plt.figure(figsize=(l/2, b/2))
    plt.contourf(grid[:,:,z], cmap=cm.Greens)
    plt.axis('equal')
    plt.xlabel('X')
    plt.ylabel('Y')
Пример #18
0
               topojson='objects.us_counties_20m')

embed_map(map)

# <headingcell level=1>

# Blending folium with interact

# <codecell>

from IPython.html import widgets
from IPython.display import display, Image, HTML, clear_output

# <codecell>

# not the most interesting demo --> but a proof of concept on how we can control map using interact

def plot_map(lat, long, zoom):
    map = folium.Map(location=[lat, long], zoom_start=zoom)
    map.simple_marker([lat, long], popup='lat:{lat} long:{long}'.format(lat=lat,long=long))
    display(inline_map(map))
    
widgets.interact(plot_map, 
                 lat=widgets.FloatSliderWidget(min=-90,max=90,step=0.1,value=0),
                 long=widgets.FloatSliderWidget(min=-180,max=180,step=0.1,value=0),
                 zoom=widgets.IntSliderWidget(min=0,max=20,step=1,value=2))

# <codecell>