<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          其實(shí)特簡(jiǎn)單!Python 可輕松制作這樣酷炫的可視化圖形!

          共 8157字,需瀏覽 17分鐘

           ·

          2022-07-06 07:48


          推薦關(guān)注↓


          對(duì)于從事數(shù)據(jù)的人來(lái)說(shuō),想要闡述自己的觀點(diǎn)時(shí),單調(diào)乏味的文本和數(shù)字,很難抓住別人的眼球。很多時(shí)候,一張炫酷圖就足以勝過(guò)千言萬(wàn)語(yǔ)。


          本文基于 Python 的 Plotly 圖形庫(kù),介紹幾種工作中常用的動(dòng)畫(huà)圖和交互式圖標(biāo)。在使用之前看一下是否安裝了 Plotly。

          朝陽(yáng)




          層次結(jié)構(gòu)數(shù)據(jù)通常存儲(chǔ)為矩形數(shù)據(jù)框,其中不同的列對(duì)應(yīng)于層次結(jié)構(gòu)的不同級(jí)別。px.sunburst可以采用path與列列表相對(duì)應(yīng)的參數(shù)。請(qǐng)注意,如果給出id,則parent不應(yīng)提供path。


          import plotly.express as px
          df = px.data.tips()
          fig = px.sunburst(df, path=['day''time''sex'], values='total_bill')
          fig.show()


          效果圖


          桑基圖




          桑基圖通過(guò)定義可視化到流動(dòng)的貢獻(xiàn)源來(lái)表示源節(jié)點(diǎn),目標(biāo)為目標(biāo)節(jié)點(diǎn),數(shù)值以設(shè)置流volum,和標(biāo)簽,顯示了節(jié)點(diǎn)名稱,在流量分析中常用。


          import plotly.graph_objects as go
          import urllib, json

          url = 'https://raw.githubusercontent.com/plotly/plotly.js/master/test/image/mocks/sankey_energy.json'
          response = urllib.request.urlopen(url)
          data = json.loads(response.read())

          # override gray link colors with 'source' colors
          opacity = 0.4
          # change 'magenta' to its 'rgba' value to add opacity
          data['data'][0]['node']['color'] = ['rgba(255,0,255, 0.8)' if color == "magenta" else color for color in data['data'][0]['node']['color']]
          data['data'][0]['link']['color'] = [data['data'][0]['node']['color'][src].replace("0.8", str(opacity))
                                              for src in data['data'][0]['link']['source']]

          fig = go.Figure(data=[go.Sankey(
              valueformat = ".0f",
              valuesuffix = "TWh",
              # Define nodes
              node = dict(
                pad = 15,
                thickness = 15,
                line = dict(color = "black", width = 0.5),
                label =  data['data'][0]['node']['label'],
                color =  data['data'][0]['node']['color']
              ),
              # Add links
              link = dict(
                source =  data['data'][0]['link']['source'],
                target =  data['data'][0]['link']['target'],
                value =  data['data'][0]['link']['value'],
                label =  data['data'][0]['link']['label'],
                color =  data['data'][0]['link']['color']
          ))])

          fig.update_layout(title_text="Energy forecast for 2050<br>Source: Department of Energy & Climate Change, Tom Counsell via <a ,
                            font_size=10)
          fig.show()


          效果圖

          雷達(dá)圖




          雷達(dá)圖(也稱為蜘蛛情節(jié)或情節(jié)星)顯示器在從中心軸始發(fā)表示定量變量的二維圖的形式多變量數(shù)據(jù)。軸的相對(duì)位置和角度通常是無(wú)用的。它等效于軸沿徑向排列的平行坐標(biāo)圖。


          import plotly.graph_objects as go

          categories = ['processing cost','mechanical properties','chemical stability',
                        'thermal stability''device integration']

          fig = go.Figure()

          fig.add_trace(go.Scatterpolar(
                r=[15223],
                theta=categories,
                fill='toself',
                name='Product A'
          ))
          fig.add_trace(go.Scatterpolar(
                r=[432.512],
                theta=categories,
                fill='toself',
                name='Product B'
          ))

          fig.update_layout(
            polar=dict(
              radialaxis=dict(
                visible=True,
                range=[05]
              )),
            showlegend=False
          )

          fig.show()


          效果圖


          漏斗圖




          漏斗圖通常用于表示業(yè)務(wù)流程不同階段的數(shù)據(jù)。在商業(yè)智能中,這是識(shí)別流程潛在問(wèn)題區(qū)域的重要機(jī)制。例如,它用于觀察銷售過(guò)程中每個(gè)階段的收入或損失,并顯示逐漸減小的值。每個(gè)階段均以占所有值的百分比表示。


          from plotly import graph_objects as go

          fig = go.Figure()

          fig.add_trace(go.Funnel(
              name = 'Montreal',
              y = ["Website visit""Downloads""Potential customers""Requested price"],
              x = [120603020],
              textinfo = "value+percent initial"))

          fig.add_trace(go.Funnel(
              name = 'Toronto',
              orientation = "h",
              y = ["Website visit""Downloads""Potential customers""Requested price""invoice sent"],
              x = [10060403020],
              textposition = "inside",
              textinfo = "value+percent previous"))

          fig.add_trace(go.Funnel(
              name = 'Vancouver',
              orientation = "h",
              y = ["Website visit""Downloads""Potential customers""Requested price""invoice sent""Finalized"],
              x = [90705030105],
              textposition = "outside",
              textinfo = "value+percent total"))

          fig.show()


          效果圖

          3D表面圖




          具有輪廓的曲面圖,使用contours屬性顯示和自定義每個(gè)軸的輪廓數(shù)據(jù)。


          import plotly.graph_objects as go

          import pandas as pd

          # Read data from a csv
          z_data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')

          fig = go.Figure(data=[go.Surface(z=z_data.values)])
          fig.update_traces(contours_z=dict(show=True, usecolormap=True,
                                            highlightcolor="limegreen", project_z=True))
          fig.update_layout(title='Mt Bruno Elevation', autosize=False,
                            scene_camera_eye=dict(x=1.87, y=0.88, z=-0.64),
                            width=500, height=500,
                            margin=dict(l=65, r=50, b=65, t=90)
          )

          fig.show()


          效果圖



          動(dòng)畫(huà)圖




          一些Plotly Express函數(shù)支持通過(guò)animation_frame和animation_group參數(shù)創(chuàng)建動(dòng)畫(huà)人物。這是使用Plotly Express創(chuàng)建的動(dòng)畫(huà)散點(diǎn)圖的示例。請(qǐng)注意,您應(yīng)始終修復(fù)x_range和,y_range以確保您的數(shù)據(jù)在整個(gè)動(dòng)畫(huà)中始終可見(jiàn)。


          import plotly.express as px
          df = px.data.gapminder()
          px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
                     size="pop", color="continent", hover_name="country",
                     log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90])

          效果圖


          結(jié)論




          可視化的圖形在日常工作中經(jīng)常實(shí)用,其中 Plotly 是用過(guò)的體驗(yàn)比較好的,本篇文章分享給大家一些案例,Plotly可 視化遠(yuǎn)不止這些,在后續(xù)的文章中,涉及可視化部分的,將介紹更多酷炫的可視化圖形,喜歡點(diǎn)個(gè)在看分享,收藏以備不時(shí)之需。

          長(zhǎng)按或掃描下方二維碼,后臺(tái)回復(fù):加群,即可申請(qǐng)入群。一定要備注:來(lái)源+研究方向+學(xué)校/公司,否則不拉入群中,見(jiàn)諒!

          長(zhǎng)按三秒,進(jìn)入后臺(tái)


          推薦閱讀

          瀏覽 41
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  超碰99re | 国产人妻人伦精品一区 | 日本黄色电影网站视频 | 国产精品乱码一区二区 | 美女啪啪网站 |