溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何制作可視化報表

發布時間:2022-02-23 11:46:29 來源:億速云 閱讀:219 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Python如何制作可視化報表的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

可視化報表效果如下,水果銷售情況一覽~

Python如何制作可視化報表

Dash是基于Plotly搭建的Dashbord框架,支持Python、R和Julia。使用Dash,你可以創建自定義響應式儀表板。

Python如何制作可視化報表

相關文檔

說明:https://dash.plotly.com/introduction

案例:https://dash.gallery/Portal/

Tailwindcss則是一個實用程序優先的CSS框架,用于快速構建自定義界面。

Python如何制作可視化報表

“這種框架只適用于那種只會實現頁面布局美化元素而不關心實現業務邏輯的前端”。

看看別人對它的評價,對于無交互的圖表,完全足夠了。

相關文檔

說明:https://www.tailwindcss.cn/docs

下面就給大家講解下如何通過Dash+Tailwindcss搭建可視化報表~

首先安裝相關的Python庫,然后導入。

import dash
import pandas as pd
import plotly.express as px
from dash import dcc, html

使用到了Pandas、Plotly、dash這三個Python庫。

我們需要把Tailwindcss的CDN作為external_script,并將其傳遞給我們的應用程序實例,這樣我們才可以成功使用Tailwindcss。

# 導入tailwindcss的CDN
external_script = ["https://tailwindcss.com/", {"src": "https://cdn.tailwindcss.com"}]
 
# 創建Dash實例
app = dash.Dash(
    __name__,
    external_scripts=external_script,
)
app.scripts.config.serve_locally = True

使用Pandas創建水果銷售數據,隨便虛構了一個。

# 創建數據
df = pd.DataFrame(
    {
        "Fruit": ["蘋果", "橙子", "香蕉", "蘋果", "橙子", "香蕉"],
        "Amount": [4.2, 1.0, 2.1, 2.32, 4.20, 5.0],
        "City": ["北京", "北京", "北京", "上海", "上海", "上海"],
    }
)
 
print(df)

結果如下,3列6行,包含水果、銷售額、城市列。

Python如何制作可視化報表

處理一下相關的數據,水果單數、銷售總額、城市單數、變量數。

# 水果單數
fruit_count = df.Fruit.count()
# 銷售總額
total_amt = df.Amount.sum()
# 城市單數
city_count = df.City.count()
# 變量數
variables = df.shape[1]

創建圖表實例,一個柱狀圖、一個箱型圖。

# 柱狀圖1, 不同水果不同城市的銷售額
fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")
 
# 箱型圖1, 不同城市的銷售額分布情況
fig1 = px.box(df, x="City", y="Amount", color="City")

效果如下。

Python如何制作可視化報表

剩下就是文字模塊啦,文字+CSS樣式。

其中排版布局美化,通過Tailwindcss來實現。

app.layout = html.Div(
    html.Div(
        children=[
            html.Div(
                children=[
                    html.H1(children="水果銷售--可視化報表", className=" py-3 text-5xl font-bold text-gray-800"),
                    html.Div(
                        children="""Python with Dash = ???? .""",
                        className="text-left prose prose-lg text-2xl  py-3 text-gray-600",
                    ),
                ],
                className="w-full mx-14 px-16 shadow-lg bg-white -mt-14 px-6 container my-3 ",
            ),
            html.Div(
                html.Div(
                    children=[
                        html.Div(
                            children=[
                                f"¥{total_amt}",
                                html.Br(),
                                html.Span("總銷售額", className="text-lg font-bold ml-4"),
                            ],
                            className=" shadow-xl py-4 px-14 text-5xl bg-[#76c893] text-white  font-bold text-gray-800",
                        ),
                        html.Div(
                            children=[
                                fruit_count,
                                html.Br(),
                                html.Span("水果數量", className="text-lg font-bold ml-4"),
                            ],
                            className=" shadow-xl py-4 px-24 text-5xl bg-[#1d3557] text-white  font-bold text-gray-800",
                        ),
                        html.Div(
                            children=[
                                variables,
                                html.Br(),
                                html.Span("變量", className="inline-flex items-center text-lg font-bold ml-4"),
                            ],
                            className=" shadow-xl py-4 px-24 text-5xl bg-[#646ffa] text-white  font-bold text-gray-800",
                        ),
                        html.Div(
                            children=[
                                city_count,
                                html.Br(),
                                html.Span("城市數量", className="text-lg font-bold ml-4"),
                            ],
                            className="w-full shadow-xl py-4 px-24 text-5xl bg-[#ef553b] text-white  font-bold text-gray-800",
                        ),
                    ],
                    className="my-4 w-full grid grid-flow-rows grid-cols-1 lg:grid-cols-4 gap-y-4 lg:gap-[60px]",
                ),
                className="flex max-w-full justify-between items-center ",
            ),
            html.Div(
                children=[
                    html.Div(
                        children=[
                            dcc.Graph(id="example-graph", figure=fig),
                        ],
                        className="shadow-xl w-full border-3 rounded-sm",
                    ),
                    html.Div(
                        children=[
                            dcc.Graph(id="example-graph2", figure=fig1),
                        ],
                        className="w-full shadow-2xl rounded-sm",
                    ),
                ],
                className="grid grid-cols-1 lg:grid-cols-2 gap-4",
            ),
        ],
        className="bg-[#ebeaee]  flex py-14 flex-col items-center justify-center ",
    ),
    className="bg-[#ebeaee] container mx-auto px-14 py-4",
)

效果如下。

Python如何制作可視化報表

最后啟動程序代碼。

if __name__ == '__main__':
    # debug模式, 端口7777
    app.run_server(debug=True, threaded=True, port=7777)
    # 正常模式, 網頁右下角的調試按鈕將不會出現
    # app.run_server(port=7777)

這樣就能在本地看到可視化大屏頁面,瀏覽器打開如下地址。

http://127.0.0.1:7777

Python如何制作可視化報表

感謝各位的閱讀!關于“Python如何制作可視化報表”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女