Python 是另乙個漂亮而酷炫的動態資料視覺化工具,可以與之動態互動

Mondo 科技 更新 2024-01-30

Python 下有很多漂亮的資料視覺化庫,比如 matplotlib、seaborn、bokeh、plotly、pyecharts 等,我們直接使用這些第三方庫進行漂亮的資料視覺化操作。 雖然這些庫可以很好地顯示資料,但很多庫在實現動態互動時,並不支援動態互動。

我們之前介紹了pyecharts,它不僅可以視覺化資料,還可以支援動態互動,並且易於安裝,只需要在python環境下使用pip即可。 在本期中,我們將介紹另乙個動態互動式資料視覺化庫 D3Blocks。

D3Blocks 是乙個用於建立獨立互動式圖表的框架。 除了 Python 之外,您無需安裝任何其他內容即可建立 D3Blocks 圖,您只需要乙個瀏覽器來繪製圖並與他人共享,無需安裝 Python 和 D3Blocks 即可執行。

D3 是 Data-Driven Documents 的縮寫,它是乙個 j**ascript 庫,用於在 Web 瀏覽器中生成動態的互動式資料視覺化。 它利用可擴充套件向量圖形 (SVG)、HTML5 和級聯樣式表 (CSS) 標準。 D3 也稱為 D3js 或 d3js。

D3 的主要優點是它符合 Web 標準,因此除了瀏覽器之外,您不需要任何其他技術來繪製圖表。 D3Blocks 建立的每個圖表都完全封裝到乙個 HTML 檔案中,這使得在 ** 上共享或發布變得非常容易。 d3blocks 的安裝也很簡單,你只需要使用以下 2 行命令中的乙個即可完成安裝,安裝完成後,我們就可以使用 d3blocks 了。

pip install git+ install d3blocks

目前,D3Blocks 支援以下動態互動塊。

timeserieschordd3graphelasticgraphsankeyheatmapmovingbubblesimagesliderscatterviolinparticlestreemaptreecirclepacking

對於每個庫,官方都提供了示例**,以便使用者可以直接使用。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('climate')d3.timeseries(df, datetime='date', dt_format='%y-%m-%d %h:%m:%s', fontsize=10, figsize=[850, 500])

我們建立了乙個時間序列塊,根據名稱我們知道這個塊是乙個時間序列,從視覺化圖表中,我們可以將滑鼠放在任意位置來檢視這個時間的資料,並且我們可以使用框選擇方法,選擇區域性區域,方便檢視詳細資料。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy')d3.chord(df)

第二個是和弦框圖,當然我們也可以用自己的資料來視覺化。 和弦塊表示多個實體或節點之間的流動或連線。 每個實體都由圓形布局之外的片段表示。 然後,在每個實體之間繪製乙個圓弧。 電弧的大小與流速的大小成正比。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy') d3.d3graph(df, filepath='d3graph.html')d3.d3graph(df, scaler='minmax')d3.d3graph.set_node_properties(color=none)d3.d3graph.node_properties['solar']['size']=30d3.d3graph.node_properties['solar']['color']='#ff0000'd3.d3graph.node_properties['solar']['edge_color']='#000000'd3.d3graph.node_properties['solar']['edge_size']=5d3.d3graph.show()d3.d3graph.set_edge_properties(directed=true, marker_end='arrow')d3.d3graph.show()d3.d3graph.node_propertiesd3.d3graph.edge_propertiesd3.d3graph.show()

D3Graph 是乙個動態和互動式的網路圖,允許您設定每個節點的顏色和大小,甚至可以向網路新增箭頭。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy') # 'stormofswords'd3.elasticgraph(df, filepath='elasticgraph.html')d3.elasticgraph.show()d3.elasticgraph.d3graph.show()d3.elasticgraph.show()d3.elasticgraph.d3graph.show()d3.elasticgraph.d3graph.node_propertiesd3.elasticgraph.d3graph.edge_properties

elasticgraph塊類似於電子核的結構,將每條資料關聯起來,並且可以詳細引用資料,雙擊每個節點將展開每條資料。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy')d3.sankey(df)

桑基桑基圖是乙個資料流視覺化塊,用於描述從一組資料到另一組資料的流。 在這種情況下,節點表示為矩形框、流或箭頭。 箭頭的寬度與流速成正比。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('stormofswords') # 'energy'd3.heatmap(df)

熱圖是反映資料之間關係的圖,從圖中我們可以看出,這個圖類似於我們解釋Transformer模型時的注意力機制圖,它反映了注意力的關係,顏色越深,兩個資料之間的關係越大。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('random_time', n=10000, c=300, date_start="1-1-2000 00:10:05", date_stop="1-1-2000 23:59:59")d3.movingbubbles(df, speed=, filepath='movingbubbles.html')

移動氣泡圖說明了資料的運動,我們可以用這個圖來表示動物的遷徙等。

from d3blocks import d3blocksd3 = d3blocks()img_before = cv2.imread(img_before, -1)img_after = cv2.imread(img_after, -1)d3.imageslider(img_before, img_after)d3.imageslider(img_before, img_after, showfig=true, scale=true, colorscale=2, figsize=[400, 400])

ImageSlider 體現了 2 前後 **的對比功能,我們可以直接在 HTML 上檢視 2 ** 前後的更改。

當然,D3Blocks還包含其他視覺塊,包括散點、小提琴、樹狀圖、樹形、圓形包裝等。

from d3blocks import d3blocksd3 = d3blocks()d3.particles('d3blocks')d3.particles('d3blocks', filepath='d3blocks.html', collision=0.05, spacing=7, figsize=[750, 150], fontsize=130, cmap='turbo', color_background='#ffffff')

最後,這個粒子很有意思,我們可以用它來推廣我們的標誌,把它放在我們的產品主頁上,或者做**來推廣。

有關更多動態視覺化,請參閱 D3Blocks 庫。

相關問題答案

    又一部“人像手機之王”即將上映!Vivo S18 亮點搶先看!

    對於vivo的年輕一代來說,人像拍攝是他們最重要的題材,但也是最難的題材。讓V迷們興奮的是,一直被譽為 人像相機之王 的S系列終於要推出重磅產品了,月日 ,我們將能夠看到它的真面目!訊息稱,S Pro採用與X相同的索尼IMX旗艦主攝,萬畫素的超廣角攝像頭,以及XS的長焦人像攝像頭。更令人振奮的是,S...

    繼Mate60之後,又一款麒麟新機即將發布,華為享享70值得期待嗎?

    華為享享 延續高階旗艦設計,如何突破低端機型?華為將於 月 日開始預售其 手機 Enjoy 。雖然這款手機被歸類為中低端機型,但華為並沒有在這一點上妥協,而是延續了高階旗艦的設計理念,在流暢度上加入了出廠前的HarmonyOS 系統。這款手機能否取得與Mate系列一樣出色的銷售成績?在外觀設計上,華...

    接管華為!另乙個衛星移動終端在這裡

    眾所周知,多虧了麒麟s晶元和G網路的回歸,今年Mate 系列引爆了整個網路。因為這意味著,時隔年,華為終於成功突破了外界的封鎖。但嚴格來說,不管是麒麟晶元還是。g,這兩者都很難稱得上遙遙領先。畢竟麒麟S處理器的效能只相當於兩年前高通驍龍的水平,而G早已是手機行業的標配。如果不得不說遙遙領先,衛星通話...

    世界上“第一”的隱形坦克,外觀酷炫,也可以變身為汽車的形狀

    坦克的誕生可以追溯到世紀初,當時坦克被用來突破戰壕線,成為地面作戰的重要力量。隨著技術的發展,坦克在戰場上發揮著越來越重要的作用。它們不僅具有強大的火力和裝甲,而且還能夠提供機動性和支援作戰單位的能力。在戰爭中,坦克作為重要的地面作戰單位,是每個隊伍的標配,是打贏勝仗的關鍵。坦克的發展歷史可以追溯到...

    12月,12月19日正式宣布另一款新機,並正式發布

    月即將進入月中旬,月初,也發布了多款新手機,從低端到高階,比如華為享 一加等機型。華為享享 主要在低端市場,而一加 主要在旗艦市場,畢竟很多方面的配置都是旗艦級的,比如處理器 螢幕 記憶體等。還有一款realme GT Pro,同樣定位於旗艦市場,但有些配置不如OnePlus 高,尤其是在螢幕和記憶...