plotly動態可視化:理解關鍵在於數據的結構

plotly動態可視化:理解關鍵在於數據的結構

一、問題

源碼:這應該是官網上的一個示例,不過我不是在官網上看到的,而是在其他地方看到的
import plotly.express as px
‘’‘氣泡動態圖’’’

df = px.data.gapminder()#預設數據
fig = 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])

#fig["layout"].pop("updatemenus") # optional, drop animation buttons
fig.show()

在這裏插入圖片描述

有了這個源碼後,首先找到

df = px.data.gapminder()

這是一個數據,數據不在本地,而是需要通過網絡進行數據請求,內部似乎有一個request,當導入時就會自動request相應數據
數據內容爲:
在這裏插入圖片描述
其格式爲<class ‘pandas.core.frame.DataFrame’>
是pandas的dataframe

因此照葫蘆畫瓢,隨意在excel中建立了一個test格式數據,用pandas讀取

path = 'J:\PyCharm項目\項目\項目二_文書內容提取\輸出模塊\word_data.xlsx'
data_frame = pd.read_excel(path,index_col=None)
print(type(data_frame))
print(data_frame)

<class ‘pandas.core.frame.DataFrame’>
格式一致

import pandas as pd
import plotly.express as px


path = 'J:\PyCharm項目\項目\項目二_文書內容提取\輸出模塊\word_data.xlsx'
data_frame = pd.read_excel(path,index_col=None)
print(type(data_frame))
print(data_frame)

fig =px.bar(data_frame, x="頻率",y='分詞', animation_frame="year", 
        orientation = 'h',range_x=[0, data_frame.頻率.max()],color = '分詞'

       )

原本數據只有兩列,索引和值,但是動態效果需要animation_frame,就隨便弄了個年份,

年份內容爲行值(請注意問題就在這裏,後面會說到)!!!!!

格式爲:
在這裏插入圖片描述

結果輸出了這樣的內容
在這裏插入圖片描述

動態也能動,但是就是特別難道,只有一個數據,和上面示例的完全不一樣
在這裏插入圖片描述

太難看了,佔據了整個版面

二、解決路徑

一、參數

我一直以爲是參數的原因,即是不是某個參數我沒有加上,導致圖片僅顯示一個條塊,而不是有很多條形一起動

結果這幾天找遍了相關文章,也看來官方文檔,始終沒有找到這個參數
找到一個比較有用的參數中文解釋文章《可視化神器Plotly_Express詳解》,鏈接: link.
但是在參數以及api方法尋找中,發現其實圖形可以疊加,例如《python繪製折線圖(多條)》,鏈接: link.
多條折線圖,需要構造多個繪圖方法

因而我想是不是需要多次繪圖即將

fig =px.bar(data_frame, x="頻率",y='分詞', animation_frame="year", 
        orientation = 'h',range_x=[0, data_frame.頻率.max()],color = '分詞'

       )
fig_ =px.bar(data_frame, x="頻率",y='分詞', animation_frame="year", 
        orientation = 'h',range_x=[0, data_frame.頻率.max()],color = '分詞'

       )
data=[fig,fig_]
figs=go.Figure(data=data, layout=layout)
figs.show()

變成這樣兩個方法,然後通過go.Figure()將之組合起來,但是仍然不行

二、數據格式

今天突然發現是數據格式問題,year和分詞的數量上需要相當,也即數據需要是類型化的,是幾類數據的合併數據集
如:test2
在這裏插入圖片描述

這樣導入後才能形成多個條形圖,因爲如上所示其實就是幾類數據的合併展示,將每一類數據作爲一個條形

之後:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章