Altair被稱作是統計分析大數據可視化庫,因為他能通過篩選、數據變換、數據交換、圖型復合型等。這篇文章跟大家聊一聊Python之中的altair大數據可視化控制模塊,同時通過讀取該控制模塊來制作某些比較常見的數據圖表,有興趣的話可以認識一下。
接下來小編來跟大伙兒聊一聊Python之中的altair大數據可視化控制模塊,同時通過讀取該控制模塊來制作某些比較常見的數據圖表,依靠Altair,大家能將更多精力與時間放到了解數據信息自身及其數據的意義上邊,從繁雜的大數據可視化環節中解放出來。
Altair是啥
Altair被稱作是統計分析大數據可視化庫,因為他能通過篩選、數據變換、數據交換、圖型復合型等形式全方位地了解數據信息、認知和處理數據,而且其安裝全過程也是相當的簡易,先通過pip指令去執行,如下所示
pip install altair pip install vega_datasets pip install altair_viewer
如果使用的是conda包管理器來安裝Altair模塊的話,代碼如下
conda install-c conda-forge altair vega_datasets
Altair初體驗
我們先簡單地來嘗試繪制一個直方圖,首先創建一個DataFrame數據集,代碼如下
df=pd.DataFrame({"brand":["iPhone","Xiaomi","HuaWei","Vivo"], "profit(B)":[200,55,88,60]})
接下來便是繪制直方圖的代碼
import altair as alt import pandas as pd import altair_viewer chart=alt.Chart(df).mark_bar().encode(x="brand:N",y="profit(B):Q") #展示數據,調用display()方法 altair_viewer.display(chart,inline=True)
output
從總體的句法結構來說,最先使用alt.Chart()特定所使用的數據信息,隨后應用實例方法mark_*()制圖數據圖表的款式,最終特定X軸和Y軸所代表數據信息,可能很多人會覺得好奇心,之中的N及其Q各自代表了哪些,這是變量類型的縮寫形式,也就是說,Altair模塊要了解圖形繪制所涉及到的變量類型,惟其如此,制作的圖型才是期待的實際效果。
這其中的N代表了為名型自變量(Nominal),比如手機的品牌全是一個一個專業名詞,而Q代表了數值型變量(Quantitative),可分為離散型數據信息(discrete)和離散型數據信息(continuous),另外還有時間序列分析型數據信息,簡寫是T及其順序型自變量(O),比如在網上購物過程中對這些商戶的定級有1-5個等級。
圖表的保存
最后的圖表的保存,我們可以直接調用save()方法來保存,將對象保存成HTML文件,代碼如下
chart.save("chart.html")
也可以保存成JSON文件,從代碼上來看十分的相類似
chart.save("chart.json")
當然我們也能夠保存成圖片格式的文件,如下圖所示
Altair之進階操作
我們在上面的基礎之上,進一步的衍生和拓展,例如我們想要繪制一張水平方向的條形圖,X軸和Y軸的數據互換,代碼如下
chart=alt.Chart(df).mark_bar().encode(x="profit(B):Q",y="brand:N") chart.save("chart1.html")
output
同時我們也來嘗試繪制一張折線圖,調用的是mark_line()方法代碼如下
##創建一組新的數據,以日期為行索引值 np.random.seed(29) value=np.random.randn(365) data=np.cumsum(value) date=pd.date_range(start="20220101",end="20221231") df=pd.DataFrame({"num":data},index=date) line_chart=alt.Chart(df.reset_index()).mark_line().encode(x="index:T",y="num:Q") line_chart.save("chart2.html")
我們還可以來繪制一張甘特圖,通常在項目管理上面用到的比較多,X軸添加的是時間日期,而Y軸上表示的則是項目的進展,代碼如下
project=[{"project":"Proj1","start_time":"2022-01-16","end_time":"2022-03-20"}, {"project":"Proj2","start_time":"2022-04-12","end_time":"2022-11-20"}, ...... ] df=alt.Data(values=project) chart=alt.Chart(df).mark_bar().encode( alt.X("start_time:T", axis=alt.Axis(format="%x", formatType="time", tickCount=3), scale=alt.Scale(domain=[alt.DateTime(year=2022,month=1,date=1), alt.DateTime(year=2022,month=12,date=1)])), alt.X2("end_time:T"), alt.Y("project:N",axis=alt.Axis(labelAlign="left", labelFontSize=15, labelOffset=0, labelPadding=50)), color=alt.Color("project:N",legend=alt.Legend(labelFontSize=12, symbolOpacity=0.7, titleFontSize=15))) chart.save("chart_gantt.html")
從上圖中我們看到團隊當中正在做的幾個項目,每個項目的進展程度不同,當然了,不同項目的時間跨度也不盡相同,表現在圖表上面的話就顯得十分的直觀了。
緊接著,我們再來繪制散點圖,調用的是mark_circle()方法,代碼如下
df=data.cars() ##篩選出地區是“USA”也就是美國的乘用車數據 df_1=alt.Chart(df).transform_filter( alt.datum.Origin=="USA" ) df=data.cars() df_1=alt.Chart(df).transform_filter( alt.datum.Origin=="USA" ) chart=df_1.mark_circle().encode( alt.X("Horsepower:Q"), alt.Y("Miles_per_Gallon:Q") ) chart.save("chart_dots.html") 當然我們可以將其進一步的優化,讓圖表顯得更加美觀一些,添加一些顏色上去,代碼如下 chart=df_1.mark_circle(color=alt.RadialGradient("radial",[alt.GradientStop("white",0.0), alt.GradientStop("red",1.0)]), size=160).encode( alt.X("Horsepower:Q",scale=alt.Scale(zero=False,padding=20)), alt.Y("Miles_per_Gallon:Q",scale=alt.Scale(zero=False,padding=20)) ) 我們更改散點的大小,不同散點的大小代表著不同的值,代碼如下 chart=df_1.mark_circle(color=alt.RadialGradient("radial",[alt.GradientStop("white",0.0), alt.GradientStop("red",1.0)]), size=160).encode( alt.X("Horsepower:Q",scale=alt.Scale(zero=False,padding=20)), alt.Y("Miles_per_Gallon:Q",scale=alt.Scale(zero=False,padding=20)), size="Acceleration:Q" )
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128682.html
摘要:四足仿生機器人具有高機動性,負載能力和適應能力強,可運用于物資運輸搶險救援等方面,具有廣闊前景。由于制作電機狗需要高昂的成本。自主設計制造一款舵機狗來學習研究四足機器狗的步態算法是一件性價比極高且很有意義的一件事。 文章目錄 前言 一、初步了解四足結構 1.1.2串聯機構 1.2?...
摘要:在控制臺中,您可以逐個編寫命令,這些命令在按下時執行宏可以包含由多行組成的更復雜的腳本,只有在執行宏時才會執行。更好的是,您可以在中設置一個選項,以在控制臺中顯示腳本命令。 Python是一種編程語言,使用起來非常簡單,學習起來非??臁K情_源的,多平臺的,可以單獨用于各種各樣的事情,從簡單的shell腳本編程到非常復雜的程序。但其最廣泛的用途之一是作為腳本語言,因為它很容易嵌入到其他...
摘要:相對于靜態圖表,人類總是容易被動畫和交互式圖表所吸引??梢允褂幂p松生成圖表直方圖功率譜,條形圖,錯誤圖表,散點圖等。然而,也有一些方面落后于同類的庫。動畫使用一組固定的對象。稍后將用數據對行對象進行填充?,F在用將它們轉換為動畫。 翻譯:瘋狂的技術宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...
摘要:相對于靜態圖表,人類總是容易被動畫和交互式圖表所吸引??梢允褂幂p松生成圖表直方圖功率譜,條形圖,錯誤圖表,散點圖等。然而,也有一些方面落后于同類的庫。動畫使用一組固定的對象。稍后將用數據對行對象進行填充?,F在用將它們轉換為動畫。 翻譯:瘋狂的技術宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...
摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
閱讀 916·2023-01-14 11:38
閱讀 887·2023-01-14 11:04
閱讀 746·2023-01-14 10:48
閱讀 2009·2023-01-14 10:34
閱讀 949·2023-01-14 10:24
閱讀 827·2023-01-14 10:18
閱讀 503·2023-01-14 10:09
閱讀 579·2023-01-14 10:02