예제 #1
0
 def render(self):
     els = []
     graph_attrs = {
         'config': dict(
             displayModeBar=False,
             responsive=True,
         )
     }
     if self.graph is not None:
         deepupdate(graph_attrs, self.graph)
     graph = dcc.Graph(id='%s-graph' % self.id,
                       className='slider-card__graph',
                       **graph_attrs)
     els.append(graph)
     if self.slider:
         slider_args = ['min', 'max', 'step', 'value', 'marks']
         assert set(self.slider.keys()).issubset(set(slider_args))
         slider_el = dcc.Slider(
             id='%s-slider' % self.id,
             vertical=True,
             className='mb-4',
             **self.slider,
         )
         els.append(html.Div(slider_el, className='slider-card__slider'))
     return els
예제 #2
0
파일: loaders.py 프로젝트: Valian/pgg
 def load(self):
     data = {}
     defaults = self.load_data_from_directory(self.directory)
     for dirname, dirpath in list_subdirectories(self.directory):
         data[dirname] = deepcopy(defaults)
         self.load_data_from_directory(dirpath)
         deepupdate(self.load_data_from_directory(dirpath), data[dirname])
     return data
예제 #3
0
def make_layout(**kwargs):
    fontStack = '\'Inter\', sans-serif'
    params = dict(
        margin=dict(
            t=30,
            r=15,
            l=60,
            b=40,
        ),
        yaxis=dict(
            rangemode='tozero',
            hoverformat='.3r',
            separatethousands=True,
            anchor='free',
            domain=[0.02, 1],
            tickfont=dict(
                family=fontStack,
                size=13,
            ),
            gridwidth=1,
            gridcolor='#ccc',
            fixedrange=True,
        ),
        xaxis=dict(showgrid=True,
                   showline=False,
                   anchor='free',
                   domain=[0.01, 1],
                   tickfont=dict(
                       family=fontStack,
                       size=13,
                   ),
                   gridwidth=1,
                   gridcolor='#ccc',
                   fixedrange=True),
        font=dict(family=fontStack),
        separators=', ',
        plot_bgcolor='#fff',
    )
    if 'legend' not in kwargs and 'showlegend' not in kwargs:
        params['showlegend'] = False

    deepupdate(params, kwargs)
    if 'title' in params:
        params['title'] = '<b>%s</b>' % params['title']

    # ret = go.Layout(**params)
    return params
예제 #4
0
파일: cards.py 프로젝트: iqqmuT/ghgdash
    def render(self, is_top_row: bool = True) -> dbc.Card:
        els = []
        graph_attrs = {
            'config': dict(
                displayModeBar=False,
                responsive=True,
            )
        }
        if self.graph is not None:
            deepupdate(graph_attrs, self.graph)
        els.append(
            dcc.Graph(id='%s-graph' % self.id,
                      className='slider-card__graph',
                      **graph_attrs))
        if self.slider:
            slider_args = ['min', 'max', 'step', 'value', 'marks']
            assert set(self.slider.keys()).issubset(set(slider_args))
            slider_el = dcc.Slider(
                id='%s-slider' % self.id,
                vertical=True,
                className='mb-4',
                **self.slider,
            )
            els.append(html.Div(slider_el, className='slider-card__slider'))

        classes = ['mb-4']
        if self.downstream_card:
            classes.append('card-border-bottom')

        if self.upstream_card:
            classes.append('card-border-top')
            classes.append('grid-downstream-card')
        elif not is_top_row:
            classes.append('grid-unconnected-downstream-card')

        card = dbc.Card(
            dbc.CardBody(children=[
                html.Div(els, className="slider-card__content"),
                self.extra_content,
            ]),
            className=' '.join(classes),
        )
        if self.link_to_page:
            return html.A(card, href=self.link_to_page.path)
        else:
            return card