Altair被稱作是統(tǒng)計(jì)分析大數(shù)據(jù)可視化庫(kù),因?yàn)樗芡ㄟ^(guò)篩選、數(shù)據(jù)變換、數(shù)據(jù)交換、圖型復(fù)合型等。這篇文章跟大家聊一聊Python之中的altair大數(shù)據(jù)可視化控制模塊,同時(shí)通過(guò)讀取該控制模塊來(lái)制作某些比較常見(jiàn)的數(shù)據(jù)圖表,有興趣的話可以認(rèn)識(shí)一下。
接下來(lái)小編來(lái)跟大伙兒聊一聊Python之中的altair大數(shù)據(jù)可視化控制模塊,同時(shí)通過(guò)讀取該控制模塊來(lái)制作某些比較常見(jiàn)的數(shù)據(jù)圖表,依靠Altair,大家能將更多精力與時(shí)間放到了解數(shù)據(jù)信息自身及其數(shù)據(jù)的意義上邊,從繁雜的大數(shù)據(jù)可視化環(huán)節(jié)中解放出來(lái)。
Altair是啥
Altair被稱作是統(tǒng)計(jì)分析大數(shù)據(jù)可視化庫(kù),因?yàn)樗芡ㄟ^(guò)篩選、數(shù)據(jù)變換、數(shù)據(jù)交換、圖型復(fù)合型等形式全方位地了解數(shù)據(jù)信息、認(rèn)知和處理數(shù)據(jù),而且其安裝全過(guò)程也是相當(dāng)?shù)暮?jiǎn)易,先通過(guò)pip指令去執(zhí)行,如下所示
pip install altair pip install vega_datasets pip install altair_viewer
如果使用的是conda包管理器來(lái)安裝Altair模塊的話,代碼如下
conda install-c conda-forge altair vega_datasets
Altair初體驗(yàn)
我們先簡(jiǎn)單地來(lái)嘗試?yán)L制一個(gè)直方圖,首先創(chuàng)建一個(gè)DataFrame數(shù)據(jù)集,代碼如下
df=pd.DataFrame({"brand":["iPhone","Xiaomi","HuaWei","Vivo"], "profit(B)":[200,55,88,60]})
接下來(lái)便是繪制直方圖的代碼
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") #展示數(shù)據(jù),調(diào)用display()方法 altair_viewer.display(chart,inline=True)
output
從總體的句法結(jié)構(gòu)來(lái)說(shuō),最先使用alt.Chart()特定所使用的數(shù)據(jù)信息,隨后應(yīng)用實(shí)例方法mark_*()制圖數(shù)據(jù)圖表的款式,最終特定X軸和Y軸所代表數(shù)據(jù)信息,可能很多人會(huì)覺(jué)得好奇心,之中的N及其Q各自代表了哪些,這是變量類型的縮寫(xiě)形式,也就是說(shuō),Altair模塊要了解圖形繪制所涉及到的變量類型,惟其如此,制作的圖型才是期待的實(shí)際效果。
這其中的N代表了為名型自變量(Nominal),比如手機(jī)的品牌全是一個(gè)一個(gè)專業(yè)名詞,而Q代表了數(shù)值型變量(Quantitative),可分為離散型數(shù)據(jù)信息(discrete)和離散型數(shù)據(jù)信息(continuous),另外還有時(shí)間序列分析型數(shù)據(jù)信息,簡(jiǎn)寫(xiě)是T及其順序型自變量(O),比如在網(wǎng)上購(gòu)物過(guò)程中對(duì)這些商戶的定級(jí)有1-5個(gè)等級(jí)。
圖表的保存
最后的圖表的保存,我們可以直接調(diào)用save()方法來(lái)保存,將對(duì)象保存成HTML文件,代碼如下
chart.save("chart.html")
也可以保存成JSON文件,從代碼上來(lái)看十分的相類似
chart.save("chart.json")
當(dāng)然我們也能夠保存成圖片格式的文件,如下圖所示
Altair之進(jìn)階操作
我們?cè)谏厦娴幕A(chǔ)之上,進(jìn)一步的衍生和拓展,例如我們想要繪制一張水平方向的條形圖,X軸和Y軸的數(shù)據(jù)互換,代碼如下
chart=alt.Chart(df).mark_bar().encode(x="profit(B):Q",y="brand:N") chart.save("chart1.html")
output
同時(shí)我們也來(lái)嘗試?yán)L制一張折線圖,調(diào)用的是mark_line()方法代碼如下
##創(chuàng)建一組新的數(shù)據(jù),以日期為行索引值 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")
我們還可以來(lái)繪制一張甘特圖,通常在項(xiàng)目管理上面用到的比較多,X軸添加的是時(shí)間日期,而Y軸上表示的則是項(xiàng)目的進(jìn)展,代碼如下
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")
從上圖中我們看到團(tuán)隊(duì)當(dāng)中正在做的幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目的進(jìn)展程度不同,當(dāng)然了,不同項(xiàng)目的時(shí)間跨度也不盡相同,表現(xiàn)在圖表上面的話就顯得十分的直觀了。
緊接著,我們?cè)賮?lái)繪制散點(diǎn)圖,調(diào)用的是mark_circle()方法,代碼如下
df=data.cars() ##篩選出地區(qū)是“USA”也就是美國(guó)的乘用車數(shù)據(jù) 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") 當(dāng)然我們可以將其進(jìn)一步的優(yōu)化,讓圖表顯得更加美觀一些,添加一些顏色上去,代碼如下 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)) ) 我們更改散點(diǎn)的大小,不同散點(diǎn)的大小代表著不同的值,代碼如下 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" )
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128682.html
摘要:四足仿生機(jī)器人具有高機(jī)動(dòng)性,負(fù)載能力和適應(yīng)能力強(qiáng),可運(yùn)用于物資運(yùn)輸搶險(xiǎn)救援等方面,具有廣闊前景。由于制作電機(jī)狗需要高昂的成本。自主設(shè)計(jì)制造一款舵機(jī)狗來(lái)學(xué)習(xí)研究四足機(jī)器狗的步態(tài)算法是一件性價(jià)比極高且很有意義的一件事。 文章目錄 前言 一、初步了解四足結(jié)構(gòu) 1.1.2串聯(lián)機(jī)構(gòu) 1.2?...
摘要:在控制臺(tái)中,您可以逐個(gè)編寫(xiě)命令,這些命令在按下時(shí)執(zhí)行宏可以包含由多行組成的更復(fù)雜的腳本,只有在執(zhí)行宏時(shí)才會(huì)執(zhí)行。更好的是,您可以在中設(shè)置一個(gè)選項(xiàng),以在控制臺(tái)中顯示腳本命令。 Python是一種編程語(yǔ)言,使用起來(lái)非常簡(jiǎn)單,學(xué)習(xí)起來(lái)非???。它是開(kāi)源的,多平臺(tái)的,可以單獨(dú)用于各種各樣的事情,從簡(jiǎn)單的shell腳本編程到非常復(fù)雜的程序。但其最廣泛的用途之一是作為腳本語(yǔ)言,因?yàn)樗苋菀浊度氲狡渌?..
摘要:相對(duì)于靜態(tài)圖表,人類總是容易被動(dòng)畫(huà)和交互式圖表所吸引??梢允褂幂p松生成圖表直方圖功率譜,條形圖,錯(cuò)誤圖表,散點(diǎn)圖等。然而,也有一些方面落后于同類的庫(kù)。動(dòng)畫(huà)使用一組固定的對(duì)象。稍后將用數(shù)據(jù)對(duì)行對(duì)象進(jìn)行填充。現(xiàn)在用將它們轉(zhuǎn)換為動(dòng)畫(huà)。 翻譯:瘋狂的技術(shù)宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...
摘要:相對(duì)于靜態(tài)圖表,人類總是容易被動(dòng)畫(huà)和交互式圖表所吸引。可以使用輕松生成圖表直方圖功率譜,條形圖,錯(cuò)誤圖表,散點(diǎn)圖等。然而,也有一些方面落后于同類的庫(kù)。動(dòng)畫(huà)使用一組固定的對(duì)象。稍后將用數(shù)據(jù)對(duì)行對(duì)象進(jìn)行填充?,F(xiàn)在用將它們轉(zhuǎn)換為動(dòng)畫(huà)。 翻譯:瘋狂的技術(shù)宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...
摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02