Bảng điều khiển tương tác Python

Và chúng tôi đã may mắn tìm thấy Dash—một khung bảng điều khiển web mã nguồn mở Python thuần túy. Nếu bạn đang so sánh Plotly dash vs. phản ứng, Dash được xây dựng bằng cách sử dụng phản ứng, vì vậy bạn không cần phải tự mình thực hiện các công việc nặng nhọc

Bây giờ, đây là cách tôi tạo trang tổng quan web của riêng mình bằng Python. Nếu bạn đang tìm kiếm một giải pháp thay thế gọn nhẹ, hãy xem Streamlit

Đọc cùng nếu bạn cần bảng điều khiển linh hoạt, tùy chỉnh hoàn toàn bằng Python. Ngoài ra còn có một tiện ích mở rộng tuyệt vời cho gói này cho phép bạn tạo các ứng dụng Dash bên trong sổ ghi chép Jupyter. Xem kho lưu trữ của nó để biết thêm các ví dụ về bảng điều khiển sao Mộc

Liên kết được Tài trợ

Streamlit so với. Dash vs. cấp độ

Cả hai công cụ đều tuyệt vời để xây dựng ứng dụng web bảng điều khiển. Nhưng streamlit tập trung nhiều hơn vào việc xây dựng bảng điều khiển nhanh cho các dự án ML. Plotly là tuyệt vời để xây dựng bảng điều khiển thú vị một cách dễ dàng

Một giải pháp thay thế tuyệt vời khác để tạo ứng dụng web bảng điều khiển là Gradio. Với gradio, bạn thậm chí có thể tạo bảng điều khiển trong sổ ghi chép python Jupyter

Nếu bạn tạo ứng dụng bảng điều khiển web của mình bằng Streamlit hoặc Gradio, ứng dụng này cũng có thể hoạt động trên thiết bị di động. Ứng dụng bảng điều khiển Plotly của bạn có thể cần tối ưu hóa hơn một chút cho việc này

Xây dựng trang tổng quan đầu tiên của bạn bằng Python [trong vòng chưa đầy 1 phút. ]

Vâng, xây dựng bảng điều khiển trong Dash thật đơn giản. Cài đặt Pandas và dấu gạch ngang bằng lệnh sau, sau đó bắt đầu hẹn giờ

pip install dash pandas

Tạo một tệp có tên

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
import pandas as pd

app = dash.Dash[]

df = pd.read_csv[
    "//raw.githubusercontent.com/ThuwarakeshM/geting-started-with-plottly-dash/main/life_expectancy.csv"
]

fig = px.scatter[
    df,
    x="GDP",
    y="Life expectancy",
    size="Population",
    color="continent",
    hover_name="Country",
    log_x=True,
    size_max=60,
]

app.layout = html.Div[[dcc.Graph[id="life-exp-vs-gdp", figure=fig]]]


if __name__ == "__main__":
    app.run_server[debug=True]
2 trong thư mục dự án của bạn với nội dung bên dưới

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
import pandas as pd

app = dash.Dash[]

df = pd.read_csv[
    "//raw.githubusercontent.com/ThuwarakeshM/geting-started-with-plottly-dash/main/life_expectancy.csv"
]

fig = px.scatter[
    df,
    x="GDP",
    y="Life expectancy",
    size="Population",
    color="continent",
    hover_name="Country",
    log_x=True,
    size_max=60,
]

app.layout = html.Div[[dcc.Graph[id="life-exp-vs-gdp", figure=fig]]]


if __name__ == "__main__":
    app.run_server[debug=True]

Giờ chiếu. hãy chạy ứng dụng bảng điều khiển bằng lệnh sau

Liên kết được Tài trợ
python app.py

Bạn sẽ thấy nó khởi động máy chủ tại cổng 8050. Nếu bạn truy cập http. //127. 0. 0. 1. 8050 trên trình duyệt của mình, bạn sẽ thấy trang tổng quan giống như sau

Bạn sẽ đánh giá cao sự khác biệt nếu bạn đã tạo một ứng dụng tương tự bằng thư viện JavaScript. Dash tiết kiệm rất nhiều thời gian bằng cách loại bỏ một lượng lớn mã soạn sẵn. Ngay cả các công cụ BI phổ biến cũng có rất nhiều công việc chuẩn bị trước để đạt được điểm này

Thật tuyệt vời. Đó là một điều khá thú vị để truyền cảm hứng cho bạn xây dựng bảng điều khiển. Nhưng bạn có thể đã nhận ra rằng nó chưa chói. Trong các phần sau, chúng ta sẽ thảo luận về cách

Liên kết được Tài trợ
  • chúng tôi có thể cải thiện bố cục;
  • thêm các tương tác và gọi lại vào các tiện ích như google analytics và;
  • tạo kiểu cho ứng dụng hơn nữa

Với điều này, bạn có thể tạo bảng điều khiển rực rỡ mà bạn cần. Duyệt qua thư viện Plotly Dash để biết thêm các trang tổng quan như vậy để lấy cảm hứng

Có liên quan. 7 cách để làm cho cấu trúc dự án Python của bạn thanh lịch hơn

Hãy thêm nhiều tiện ích vào bố cục

Dash tuân theo hệ thống phân cấp phần tử giống như HTML. Bạn có thể đính kèm bất kỳ thành phần HTML hoặc Core nào của Dash vào thuộc tính bố cục của ứng dụng. Thuộc tính bố cục là gốc của hệ thống phân cấp phần tử của ứng dụng Dash

Các thành phần cốt lõi là một tập hợp các tiện ích được định cấu hình sẵn như menu thả xuống và thanh trượt

Liên kết được Tài trợ

Các thành phần HTML của Dash bao gồm hầu hết mọi thành phần HTML có sẵn. Để tạo tiêu đề, bạn có thể sử dụng

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
import pandas as pd

app = dash.Dash[]

df = pd.read_csv[
    "//raw.githubusercontent.com/ThuwarakeshM/geting-started-with-plottly-dash/main/life_expectancy.csv"
]

fig = px.scatter[
    df,
    x="GDP",
    y="Life expectancy",
    size="Population",
    color="continent",
    hover_name="Country",
    log_x=True,
    size_max=60,
]

app.layout = html.Div[[dcc.Graph[id="life-exp-vs-gdp", figure=fig]]]


if __name__ == "__main__":
    app.run_server[debug=True]
0 và
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
import pandas as pd

app = dash.Dash[]

df = pd.read_csv[
    "//raw.githubusercontent.com/ThuwarakeshM/geting-started-with-plottly-dash/main/life_expectancy.csv"
]

fig = px.scatter[
    df,
    x="GDP",
    y="Life expectancy",
    size="Population",
    color="continent",
    hover_name="Country",
    log_x=True,
    size_max=60,
]

app.layout = html.Div[[dcc.Graph[id="life-exp-vs-gdp", figure=fig]]]


if __name__ == "__main__":
    app.run_server[debug=True]
1 để tạo đoạn văn. Thuộc tính con cho phép bạn lồng một thành phần HTML trong một thành phần khác

app.layout = html.Div[
    [   
        # Dropdown to filter developing/developed country.
        html.Div[
            [
                dcc.Dropdown[
                    id="status-dropdown",
                    options=[{"label": s, "value": s} for s in df.Status.unique[]], # Create available options from the dataset
                ],
            ]
        ],
        # Dropdown to filter countries with average schooling years.
        html.Div[
            [
                dcc.Dropdown[
                    id="schooling-dropdown",
                    options=[
                        {"label": y, "value": y}
                        for y in range[
                            int[df.Schooling.min[]], int[df.Schooling.max[]] + 1
                        ]
                    ], # add options from the dataset.
                ],
            ]
        ],
        # Placeholder to render teh chart.
        html.Div[dcc.Graph[id="life-exp-vs-gdp"], className="chart"],

        # Slider to select year.
        dcc.Slider[
            "year-slider",
            min=df.Year.min[], # dynamically select minimum and maximum years from the dataset.
            max=df.Year.max[],
            step=None,
            marks={year: str[year] for year in range[df.Year.min[], df.Year.max[] + 1]}, # set markers at one year interval.
            value=df.Year.min[],
        ],
    ],
]

Trong đoạn mã trên, chúng tôi đã bao gồm ba thành phần cốt lõi—hai trình đơn thả xuống và một thanh trượt. Các phần tử điều khiển này cho phép chúng tôi lọc dữ liệu biểu đồ và tạo tính tương tác trong phần tiếp theo

Thêm tương tác với các cuộc gọi lại thành phần

Các thành phần cốt lõi của Dash có các lệnh gọi lại để kiểm soát phản hồi đối với hành động của người dùng. Tính năng này rất đáng chú ý vì lý do tại sao các ứng dụng Dash vượt trội hơn các nền tảng BI phổ biến

Bạn có thể sử dụng lệnh gọi lại này để kiểm soát việc hiển thị lại biểu đồ hoặc kích hoạt phân tích nặng. Hãy xem bài viết của tôi về cách thực hiện các phép tính lớn để sử dụng với các ứng dụng Dash và Celery

Ở đây trong bài đăng này, chúng tôi sử dụng các cuộc gọi lại để lọc dữ liệu biểu đồ

@app.callback[
    Output["life-exp-vs-gdp", "figure"],
    Input["year-slider", "value"],
    Input["status-dropdown", "value"],
    Input["schooling-dropdown", "value"],
]
def update_figure[selected_year, country_status, schooling]:
    filtered_dataset = df[[df.Year == selected_year]]

    if schooling:
        filtered_dataset = filtered_dataset[filtered_dataset.Schooling 

Chủ Đề