最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用Python?繪制瀑布圖

 更新時(shí)間:2022年05月08日 10:45:07   作者:螞蟻ailing  
這篇文章主要介紹了如何使用Python?繪制瀑布圖,我們一起了解瀑布圖的重要性,以及如何使用不同的繪圖庫(kù)繪制瀑布圖。瀑布圖是一種二維圖表,專門用于了解隨著時(shí)間或多個(gè)步驟或變量的增量正負(fù)變化的影響,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下

前言

在日常生活中,我們的工作有時(shí)候需要對(duì)數(shù)據(jù)進(jìn)行可視化,讓它一圖標(biāo)之類的呈現(xiàn)出來(lái)。圖給人的感覺(jué)是最直觀的,并且能夠一眼就看到數(shù)據(jù)。

今天我們一起了解瀑布圖的重要性,以及如何使用不同的繪圖庫(kù)(如 Matplotlib、Plotly)繪制瀑布圖。
瀑布圖是一種二維圖表,專門用于了解隨著時(shí)間或多個(gè)步驟或變量的增量正負(fù)變化的影響。瀑布圖也稱為浮磚圖、飛磚圖。

瀑布圖

瀑布圖經(jīng)常用于財(cái)務(wù)分析,以了解多種因素對(duì)特定對(duì)象的正面和負(fù)面影響。該圖表可以顯示基于時(shí)間或基于類別的效果?;陬悇e的圖表表示費(fèi)用或銷售額的收益或損失或具有順序正值和負(fù)值的任何其他變量?;跁r(shí)間的圖表表示一段時(shí)間內(nèi)的收益或損失。

瀑布圖大多采用水平方式。它們從水平軸開(kāi)始,由一系列與負(fù)面或正面評(píng)論相關(guān)的浮動(dòng)列連接。有時(shí),條形圖與圖表中的線條相連。

瀑布圖使用條件

讓我們舉個(gè)例子來(lái)了解何時(shí)何地使用瀑布圖,因?yàn)橹谱髌俨紙D不是什么大問(wèn)題。我們將使用一些虛擬數(shù)據(jù)和 Kaggle 數(shù)據(jù)集來(lái)構(gòu)建瀑布圖。

舉個(gè)例子

試想下,一個(gè)普通的數(shù)據(jù)表,和一個(gè)驚艷的瀑布圖,哪個(gè)更方便閱讀?

這張表代表了整個(gè)一周的銷售數(shù)據(jù),使用 seaborn 庫(kù)創(chuàng)建了熱圖*background_gradient

import seaborn as sns*
#data
a = ['mon','tue','wen','thu','fri','sat','sun']
b = [10,-30,-7.5,-25,95,-7,45]
df2 = pd.DataFrame(b,a).reset_index().rename(columns={'index':'values',0:'week'})
#table
cm = sns.light_palette("green", as_cmap=True)
df2.style.background_gradient(cmap=cm)

將格式化的表單數(shù)據(jù)和瀑布圖放在一起查看。

該表按順序顯示了值的重要性,但讀取這些值非常困難。相反,我們可以很容易地看到,按x軸正方向的連貫性順序顯示數(shù)據(jù),并且黃色條顯示減量,紅色條顯示增量。

Plotly 繪制瀑布圖

我們將要使用的數(shù)據(jù)取自Netflix 電影和電視節(jié)目的Kaggle數(shù)據(jù)。

我們將使用一個(gè)開(kāi)源圖表庫(kù) Plotly繪制。

#導(dǎo)入庫(kù)
import plotly.graph_objects as go
#數(shù)據(jù)集
df = pd.read_csv(r'D:/netflix_titles.csv')
#添加年和月并轉(zhuǎn)換為正確的日期時(shí)間格式
df["date_adding"] = pd.to_datetime(df['date_ added'])
df['year_addition'] = df['date_ added'].dt.year
df['month_ added'] = df['date_addition'].dt.month
df.head(3)
#準(zhǔn)備數(shù)據(jù)
2 = df[df["type"] == "Movie"]
col = "year_added"
vc2 = d2[col].value_counts().reset_index().rename(columns = {col : "count", "index" : col})
vc2['percent'] = vc2['count'].apply(lambda x : 100*x/sum(vc2['count']))
vc2 = vc2.sort_values(col)
#繪制瀑布圖
#現(xiàn)在我們將使用 Plotly trace go.Waterfall() 制作一個(gè)瀑布圖。
fig2 = go.Figure(go.Waterfall(
    name = "Movie",
    orientation = "v",
    x = ["2008", "2009", "2010", "2011", "2012",
         "2013", "2014", "2015", "2016", "2017",
         "2018", "2019", "2020", "2021"],
    textposition = "auto",
    text = ["1", "2", "1", "13", "3", "6", "14", "48",
            "204", "743", "1121", "1366", "1228", "84"],
    y = [1, 2, -1, 13, -3, 6, 14, 48, 204, 743, 1121, 1366, -1228, -84],
    connector = {"line":{"color":"#b20710"}},
    increasing = {"marker":{"color":"#b20710"}},
    decreasing = {"marker":{"color":"orange"}},
))

參數(shù)設(shè)置

go.Waterfall()的每個(gè)參數(shù):

•x: x軸上的值

•y: y軸上的值

•text: 將要在圖表上顯示的值

•textposition: 我們可以把文本放在圖表的柱狀圖內(nèi)或柱狀圖上方

為何更加優(yōu)雅的使用圖表,我們可以為圖表的條形及其連接線設(shè)置顏色。紅色表示增加,黃色表示減少。

圖表的參數(shù):

•connector: 為連接器線提供顏色

•increasing: 給遞增的條賦予顏色

•decreasing: 給遞減的條上色

其實(shí),上面已經(jīng)完成了瀑布圖的繪制,但若想他更加驚艷,可以進(jìn)一步設(shè)置圖表。

fig2.update_xaxes(showgrid=False)
fig2.update_yaxes(showgrid=False, visible=False)
fig2.update_traces(hovertemplate=None)
fig2.update_layout(title='Watching Movies over the year',
                   height=350,
                   margin=dict(t=80, b=20, l=50, r=50),
                   hovermode="x unified",
                   xaxis_title=' ',
                   yaxis_title=" ",
                   plot_bgcolor='#333',
                   paper_bgcolor='#333',
                   title_font=dict(size=25,
                                   color='#8a8d93',
                                   family="Lato, sans-serif"),
                   font=dict(color='#8a8d93'))

update_layout參數(shù):

•title: 圖表的標(biāo)題

•margin: 設(shè)置圖表的邊距:上、下、左、右

•plot_bgcolor: 設(shè)置繪圖背景顏色

•paper_bgcolor: 設(shè)置紙張背景顏色

•font: 設(shè)置字體屬性

•title_font: 設(shè)置標(biāo)題字體屬性

這里,通過(guò)使用 update_yaxes(visible=False) 隱藏了 y 軸。

完整代碼

d2 = df[df["type"] == "Movie"]
col = "year_added"
vc2 = d2[col].value_counts().reset_index().rename(columns = {col : "count", "index" : col})
vc2['percent'] = vc2['count'].apply(lambda x : 100*x/sum(vc2['count']))
vc2 = vc2.sort_values(col)
fig2 = go.Figure(go.Waterfall(
    name = "Movie", orientation = "v",
    x = ["2008", "2009", "2010", "2011", "2012", 
         "2013", "2014", "2015", "2016", "2017", 
         "2018", "2019", "2020", "2021"],
    textposition = "auto",
    text = ["1", "2", "1", "13", "3", "6", "14", "48", 
            "204", "743", "1121", "1366", "1228", "84"],
    y = [1, 2, -1, 13, -3, 6, 14, 48, 204, 743, 1121, 1366, -1228, -84],
    connector = {"line":{"color":"#b20710"}},
    increasing = {"marker":{"color":"#b20710"}},
    decreasing = {"marker":{"color":"orange"}},
))
fig2.update_xaxes(showgrid=False)
fig2.update_yaxes(showgrid=False, visible=False)
fig2.update_traces(hovertemplate=None)
fig2.update_layout(title='Watching Movies over the year',
                   height=350,
                   margin=dict(t=80, b=20, l=50, r=50),
                   hovermode="x unified",
                   xaxis_title=' ',
                   yaxis_title=" ",
                   plot_bgcolor='#333',
                   paper_bgcolor='#333',
                   title_font=dict(size=25, color='#8a8d93',
                                   family="Lato, sans-serif"),
                   font=dict(color='#8a8d93'))

Matplotlib繪制瀑布圖

使用Matplotlib 繪制瀑布圖,需要安裝第三方繪圖庫(kù)waterfallcharts,即使用 pip 安裝瀑布圖庫(kù)。

pip install waterfallcharts

#導(dǎo)入庫(kù)
import pandas as pd
import waterfall_chart
import matplotlib.pyplot as plt
%matplotlib inline
#繪制瀑布圖
#為每周的銷售數(shù)據(jù)繪制一個(gè)瀑布圖。
a = ['mon','tue','wen','thu','fri','sat','sun']
b = [10,-30,-7.5,-25,95,-7,45]
waterfall_chart.plot(a, b);

為Matplotlib中的瀑布圖

如果仔細(xì)查看圖表,默認(rèn)情況下,具有正值的條形為綠色,負(fù)值為紅色,總值為藍(lán)色。

向圖表添加一些參數(shù):

waterfall_chart.plot(a, b, 
                     net_label='Total',
                     rotation_value=360)

圖表參數(shù):

•net_label: 在最后一根柱線,我們可以通過(guò) net_label 改變柱線的名稱。

•rotation_value: 旋轉(zhuǎn)并設(shè)置x軸的值。

總結(jié)

本文中,我們一起看到了瀑布圖的重要性:何時(shí)以及如何將它與 Plotly 和 Matploib 一起使用

到此這篇關(guān)于如何使用Python 繪制瀑布圖的文章就介紹到這了,更多相關(guān)Python 繪制瀑布圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python全排列操作實(shí)例分析

    Python全排列操作實(shí)例分析

    這篇文章主要介紹了Python全排列操作,結(jié)合實(shí)例形式分析了Python列表、字符串全排列算法,以及使用標(biāo)準(zhǔn)庫(kù)itertools進(jìn)行全排列的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python標(biāo)準(zhǔn)庫(kù)inspect的具體使用方法

    Python標(biāo)準(zhǔn)庫(kù)inspect的具體使用方法

    本篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)inspect的具體使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎

    基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎

    這篇文章主要介紹了基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎,文中代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-01-01
  • django表單中的按鈕獲取數(shù)據(jù)的實(shí)例分析

    django表單中的按鈕獲取數(shù)據(jù)的實(shí)例分析

    在本篇文章里小編給大家詳解了關(guān)于django表單中的按鈕獲取數(shù)據(jù)的內(nèi)容,需要的朋友們可以參考下。
    2020-07-07
  • Python編寫合并字典并實(shí)現(xiàn)敏感目錄的小腳本

    Python編寫合并字典并實(shí)現(xiàn)敏感目錄的小腳本

    這篇文章主要介紹了Python編寫合并字典并實(shí)現(xiàn)敏感目錄的小腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 如何利用opencv訓(xùn)練自己的模型實(shí)現(xiàn)特定物體的識(shí)別

    如何利用opencv訓(xùn)練自己的模型實(shí)現(xiàn)特定物體的識(shí)別

    在Python中通過(guò)OpenCV自己訓(xùn)練分類器進(jìn)行特定物體實(shí)時(shí)識(shí)別,下面這篇文章主要給大家介紹了關(guān)于如何利用opencv訓(xùn)練自己的模型實(shí)現(xiàn)特定物體的識(shí)別,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • 教你安裝python Django(圖文)

    教你安裝python Django(圖文)

    web開(kāi)發(fā)語(yǔ)言越來(lái)越多,本文是安裝python Django,看完之后就可以使用PYTHON做開(kāi)發(fā)了。
    2013-11-11
  • Django零基礎(chǔ)入門之靜態(tài)文件的引用

    Django零基礎(chǔ)入門之靜態(tài)文件的引用

    這篇文章主要介紹了Django零基礎(chǔ)入門之靜態(tài)文件的引用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表詳解

    Python數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表詳解

    循環(huán)鏈表 (Circular Linked List) 是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的另一種形式,它將鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向鏈表的頭結(jié)點(diǎn),使整個(gè)鏈表頭尾相接形成一個(gè)環(huán)形,使鏈表的操作更加方便靈活。本文將詳細(xì)介紹一下循環(huán)鏈表的相關(guān)知識(shí),需要的可以參考一下
    2022-01-01
  • Sanic框架基于類的視圖用法示例

    Sanic框架基于類的視圖用法示例

    這篇文章主要介紹了Sanic框架基于類的視圖用法,結(jié)合實(shí)例形式分析了Sanic框架基于類的視圖定義、使用及相關(guān)路由操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07

最新評(píng)論

永定县| 思南县| 武平县| 东光县| 宁蒗| 安西县| 金华市| 东宁县| 宁都县| 郸城县| 阜宁县| 科技| 白朗县| 苍溪县| 临沂市| 台北市| 平顶山市| 阜平县| 扶绥县| 临夏县| 雅安市| 沧源| 砀山县| 蓬溪县| 南阳市| 玉屏| 加查县| 湖州市| 诸城市| 金华市| 贵南县| 当雄县| 马尔康县| 壶关县| 临夏县| 仙桃市| 五大连池市| 洪江市| 博罗县| 仙桃市| 无锡市|