플롯에서 주기적으로 수치 업데이트

나단 토마스

아래는 라이브 인구 데이터를 검색하는 간단한 스크립트입니다. 주기적으로 업데이트하고 플롯 그림을 업데이트합니다.

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import dash_bootstrap_components as dbc


# Retrieve data
link = requests.get("https://countrymeters.info/en/World").text
table = pd.read_html(link)[0]
table = table
figure = table.iplot(asFigure=True, kind='bar',xTitle='Source: World',yTitle='Live Pop',title='Population')

# Dash app
app = dash.Dash(external_stylesheets=[dbc.themes.LUX])

# Bootstrap CSS
app.css.append_css({"external_url": "https://codepen.io/amyoshino/pen/jzXypZ.css"})
link = session.get("https://countrymeters.info/en/World").text

app.layout = html.Div(children=[
    html.H1("Population Data Scrape"),

    html.Div(children=
    '''
    A summary of the latest population data across the globe.
    '''     ),

    # Graph 1
    html.Div([
        dcc.Tabs([ #Tab 1
            dcc.Tab(label="Population Data", children=[

                html.Div([
                    dcc.Graph(
                        id = "Data",
                        figure = table.iplot(asFigure=True, kind='bar',xTitle='Source: World',yTitle='Live Pop',title='Population')
                            ),
                            dcc.Interval(
                                id="4secinterval",
                                interval="4000",
                                n_intervals=0
                            )], className = "six columns"),



                        ]),


                ])
            ])
        ])


# Update graph
@app.callback(Output("Data", "figure"),
            [Input("4secinterval", "n_intervals")])
def draw_figure(n):      
    test = session.get("https://countrymeters.info/en/World").text
    table = pd.read_html(test)[0]
    table = table
    figure = table.iplot(asFigure=True, kind='bar',xTitle='Source: World',yTitle='Live Pop',title='Population')
    return figure

if __name__ == "__main__":
    app.run_server(debug=False)

내 코드의 "그래프 업데이트"섹션에서 그래프를 업데이트하려면 웹 스크랩을 다시 호출하여 최신 데이터를 검색하고 전체 함수에서 정의해야합니다. 이전에 함수를 정의하고 사용하려고 시도했습니다.

@app.callback(Output("Data", "figure"),
            [Input("4secinterval", "n_intervals")])
draw_figure(n)

나는 단지 그림을 반환하기를 바랐지만 이것은 작동하지 않습니다. 플롯 / 대시에서 더 짧은 방식으로 그림을 업데이트 할 수있는 방법이 있습니까 (즉, 데이터를 다시 긁어 내고 형식을 지정할 필요없이)?

Syamanthaka

여기서 캐치는 dcc.Graph섹션에 있습니다. table.iplot()검색 섹션에서 테이블이 전역 변수 로 정의 된 전역 변수를 호출합니다 .

모든 함수를 별도의 파일에`useful_functions.py '라고 입력하십시오.

def draw_graph():
  link = requests.get("https://countrymeters.info/en/World").text
  table = pd.read_html(link)[0]
  table = table
  figure = table.iplot(asFigure=True, kind='bar',xTitle='Source: World',yTitle='Live Pop',title='Population')
  return figure
the_graph = draw_graph()

이제 위와 같이 주 파일에서 table과 figure의 전역 선언을 제거하십시오. 그래프를 표시하려면 그래프 섹션에서 draw_graph()함수를 다음과 같이 호출하십시오 .

 import useful_functions as uf
 <rest of the html app code>
 dcc.Graph(
   id = "graph_id",
   figure = uf.the_graph
),

로드시 처음으로 그래프를 호출합니다. 이제 새로 고침 비트의 경우 callback다음과 같습니다.

@app.callback(Output("Data", "figure"),
        [Input("4secinterval", "n_intervals")])
def draw_figure(n):
    fig = uf.draw_graph()
    return fig

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

matplotlib에서 누적 막대 플롯을 동적으로 업데이트

분류에서Dev

Pytorch에서 수동으로 가중치 업데이트

분류에서Dev

파이썬에서 수평 방향으로 물리적으로 플롯 늘리기

분류에서Dev

Jupyter에서 matplotlib 플롯의 지속적인 업데이트

분류에서Dev

백그라운드에서 주기적으로 데이터 업데이트 (Android)

분류에서Dev

여러 플롯에서 채우기 그라데이션 일치

분류에서Dev

JS에서 변수를 동적으로 업데이트

분류에서Dev

HandsOnTable에서 업데이트 된 열 이름을 Shiny의 플롯으로 어떻게 전달할 수 있습니까?

분류에서Dev

파이썬에서 통합의 변수 제한으로 플롯

분류에서Dev

음수 및 양수 값으로 팬더 데이터 프레임에서 플롯

분류에서Dev

주파수 : MATLAB에서 FFT를 사용한 데시벨 플롯

분류에서Dev

Python (Spyder)에서 인라인 플롯을 업데이트 할 수 있습니까?

분류에서Dev

Matplotlib에서 연속적으로 막대 플롯 데이터를 수행하는 방법은 무엇입니까?

분류에서Dev

C # 콘솔 애플리케이션에서 지속적으로 Datetime 변수 업데이트

분류에서Dev

ggplot : 플롯의 포인트 수로 패싯 레이블 업데이트

분류에서Dev

Python이 여러 변수에 텍스트로 플롯 방식으로 주석 달기

분류에서Dev

Python이 여러 변수에 텍스트로 플롯 방식으로 주석 달기

분류에서Dev

ggplot 2.2.0으로 업데이트 한 후 플롯 오류-알 수없는 미학

분류에서Dev

R 4.0.0 이상에서 벡터로 수식을 동적으로 업데이트

분류에서Dev

R 4.0.0 이상에서 벡터로 수식을 동적으로 업데이트

분류에서Dev

서버에서 데이터를 구문 분석하고 주기적으로 GUI 업데이트-Java Swing

분류에서Dev

Erlang에서 주기적으로 작업을 수행하는 방법

분류에서Dev

Erlang에서 주기적으로 작업을 수행하는 방법

분류에서Dev

Seaborn 라인 플롯 : 데이터 프레임 플롯에서 플롯은 짝수 플롯 만

분류에서Dev

텍스트 왼쪽에서 y 축 제목으로 플롯에 주석 달기

분류에서Dev

손상없이 서버에서 주기적으로 업데이트 된 이미지 제공

분류에서Dev

node.js에서 비동기 적으로 업데이트되지 않는 변수

분류에서Dev

Python-Python 플롯에서 플롯이 축선을 교차하는 위치 찾기

분류에서Dev

주기적으로 작업 수행

Related 관련 기사

  1. 1

    matplotlib에서 누적 막대 플롯을 동적으로 업데이트

  2. 2

    Pytorch에서 수동으로 가중치 업데이트

  3. 3

    파이썬에서 수평 방향으로 물리적으로 플롯 늘리기

  4. 4

    Jupyter에서 matplotlib 플롯의 지속적인 업데이트

  5. 5

    백그라운드에서 주기적으로 데이터 업데이트 (Android)

  6. 6

    여러 플롯에서 채우기 그라데이션 일치

  7. 7

    JS에서 변수를 동적으로 업데이트

  8. 8

    HandsOnTable에서 업데이트 된 열 이름을 Shiny의 플롯으로 어떻게 전달할 수 있습니까?

  9. 9

    파이썬에서 통합의 변수 제한으로 플롯

  10. 10

    음수 및 양수 값으로 팬더 데이터 프레임에서 플롯

  11. 11

    주파수 : MATLAB에서 FFT를 사용한 데시벨 플롯

  12. 12

    Python (Spyder)에서 인라인 플롯을 업데이트 할 수 있습니까?

  13. 13

    Matplotlib에서 연속적으로 막대 플롯 데이터를 수행하는 방법은 무엇입니까?

  14. 14

    C # 콘솔 애플리케이션에서 지속적으로 Datetime 변수 업데이트

  15. 15

    ggplot : 플롯의 포인트 수로 패싯 레이블 업데이트

  16. 16

    Python이 여러 변수에 텍스트로 플롯 방식으로 주석 달기

  17. 17

    Python이 여러 변수에 텍스트로 플롯 방식으로 주석 달기

  18. 18

    ggplot 2.2.0으로 업데이트 한 후 플롯 오류-알 수없는 미학

  19. 19

    R 4.0.0 이상에서 벡터로 수식을 동적으로 업데이트

  20. 20

    R 4.0.0 이상에서 벡터로 수식을 동적으로 업데이트

  21. 21

    서버에서 데이터를 구문 분석하고 주기적으로 GUI 업데이트-Java Swing

  22. 22

    Erlang에서 주기적으로 작업을 수행하는 방법

  23. 23

    Erlang에서 주기적으로 작업을 수행하는 방법

  24. 24

    Seaborn 라인 플롯 : 데이터 프레임 플롯에서 플롯은 짝수 플롯 만

  25. 25

    텍스트 왼쪽에서 y 축 제목으로 플롯에 주석 달기

  26. 26

    손상없이 서버에서 주기적으로 업데이트 된 이미지 제공

  27. 27

    node.js에서 비동기 적으로 업데이트되지 않는 변수

  28. 28

    Python-Python 플롯에서 플롯이 축선을 교차하는 위치 찾기

  29. 29

    주기적으로 작업 수행

뜨겁다태그

보관