下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、在Pyth on中,將數(shù)據(jù)可視化有多種選擇,正是因為這種多樣性,何時選用何種方案才變得極具挑戰(zhàn)性。本文包含了一些較為流行的工具以與如何使用它們來創(chuàng)建簡單的條形圖,我將使用下面幾種工具來完成繪圖示例:?Pandas?Seabor n?ggplot?Bokeh?pygal什么是 Matplotlib ?Matplotlib 是眾多Python可視化包的鼻祖。其功能非常強(qiáng)大,同時也非常復(fù) 雜。你可以使用Matplotlib去做任何你想做的事情,但是想要搞明白卻并非易事。我不打算展示原生的Matplotlib 例子,因為很多工具特別是 Pan das和Seaborn是基于Matplotlib的輕量級圭
2、寸裝。Pandas首先,導(dǎo)入模塊并將數(shù)據(jù)讀入budget DataFrame,將數(shù)據(jù)排序并取前10條。import pandas as pdbudget = pd.read_csv("mn-budget-detail-2014.csv")budget = budget.sort('amount',ascending=False):10我們將在所有示例中使用一樣的 budget數(shù)據(jù),下面是其中5條:categofy11 tunamourit46ADM 1 NISI RAT IONCapitol Renovaiiori and 曳estor日bon Conwue
3、d12B3DODOO1UNIVERSIT¥O£ MINNESOTAumreapoits.Laboraioiy Renovaiwn567000007®-IUMAI4 SERVICESMinne:a Security hospiial - St. Peter&63170000UNIVERSITY OF MINNESOTAHbghef Education Asset Preservatron and RepOc42500000壽WINIMESOTA STATE COLLEGES AMD UNIVERS17IESHotter Education Asset Pre
4、seation and Repiac42500000現(xiàn)在,調(diào)整展示風(fēng)格為更美觀的默認(rèn)設(shè)置,并創(chuàng)建圖表:pd.options.display.mpl_style = 'default'budget_plot = budget.plot(kind="bar",x=budget"detai門,title="MN Capital Budget - 2014", legend=False)上述代碼使用detail列的數(shù)據(jù)完成了創(chuàng)建圖表的主要工作,同時展示了title并移除了 lege nd。下面是將圖表存為png格式的代碼:fig = b
5、udget_plot.get_figure()fig.savefig("2014-mn-capital-budget.png")根底圖表看起來不錯,理想情況下,我想對y軸再做一些格式化,但是這樣做需要使用matplotlib 的一些功能。雖然現(xiàn)在的圖表已是完美可用的可視化圖表了, 但是僅僅通過pan das是不可能完成更多定制的。Seabor nSeaborn是一個基于matplotlib的可視化庫。它旨在使默認(rèn)的數(shù)據(jù)可視化更加悅目。它還旨在簡化復(fù)雜圖表的創(chuàng)建,可以與 pan das很好地集成。標(biāo)準(zhǔn)導(dǎo)包與讀取數(shù)據(jù):sns.set_style("darkgrid&q
6、uot;)bar_plot = sns.barplot(x=budget"detail",y=budget"amount",palette="muted",x_order=budget"detail".tolist()plt.xticks(rotation=90)plt.show()正如你所看到的,我必修使用matplotlib 旋轉(zhuǎn)x軸的標(biāo)題以便可以正常地閱讀。從外觀上看,圖表看起來不錯。理想情況下,我想格式化y軸上的刻度,但我不知道在不使用matplotlib 中的plt.yticks的情況下,如何實現(xiàn)格式化。
7、ggpiotggplot與Seaborn類似,也是基于 matplotlib 并旨在以簡單的方式提高 matplotlib可視化的視覺感染力。它不同于seaborn是因為它是ggplot2 為R語言準(zhǔn)備的一個端口?;谶@個目標(biāo),一些API的接口雖然不是很pythonic但是功能很強(qiáng)大。繼續(xù)導(dǎo)包并讀取數(shù)據(jù):import pandas as pdfrom ggplot import *budget = pd.read_csv("mn-budget-detail-2014.csv")budget = budget.sort('amount',ascending=F
8、alse):10現(xiàn)在讓我們通過連接幾條ggplot命令來構(gòu)造圖表:p = ggplot(budget, aes(x="detail",y="amount") +geom_bar(stat="bar", labels=budget"detail".tolist() +ggtitle("MN Capital Budget - 2014") +xlab("Spending Detail") +ylab("Amount") + scale_y_continuous
9、(labels='millions') +theme(axis_text_x=element_text(angle=90)print p這似乎看起來有些奇怪-尤其是使用print p來顯示圖表。但是,我發(fā)現(xiàn)這樣相對簡單明了。要弄清楚如何將文本旋轉(zhuǎn)90度以與如何將x軸上的標(biāo)簽排序,確實要做些深入 的挖掘。我發(fā)現(xiàn)最酷的功能是scale_y_continous,它可以使標(biāo)簽更美觀。如果你想將圖表保存為圖片,使用ggsave可以很輕松地辦到:ggsave(p, "mn-budget-capital-ggplot.p ng")如下圖是最終的圖片,我知道灰色可能有點多,
10、但是毫不費時就可以給它添些色 彩。BokehBokeh不同于之前的3個庫,它不依賴于 matplotlib并且實現(xiàn)的是面向現(xiàn)代瀏覽器的可視化。它的目標(biāo)是實現(xiàn)交互式的web可視化,所以我的例子非常簡單。導(dǎo)包并讀入數(shù)據(jù):import pandas as pdfrom bokeh.charts import Barbudget = pd.read_csv("mn-budget-detail-2014.csv")budget = budget.sort('amount',ascending=False):10bokeh不同的一方面是我需要明確列出我繪圖需要的值。de
11、tails = budget"detail".values.tolist()amount = list(budget"amount".astype(float).values)現(xiàn)在我們可以繪圖了。下面的代碼將會實現(xiàn)在瀏覽器中展示包含圖表的HTML頁面,如果想用作其他展示,可以保存其png格式的副本。bar = Bar(amount, details, filename="bar.html")bar.title("MN Capital Budget - 2014").xlabel("Detail"
12、).ylabel("Amount")bar.show()下面是png格式的圖片:正如你所看到的,圖表是非常干凈的。我沒有找到一種更簡單的方式來格式化y軸。Bokeh有很多功能,但在本例中我并未深入探索。PygaiPygal用于創(chuàng)建svg格式的圖表,如果安裝了正確的依賴,也可以保存為png格式。svg文件在創(chuàng)建交互式圖表時非常有用,同時我也發(fā)現(xiàn),使用此工具可以非常 容易地創(chuàng)建獨特而又極具視覺感染力的圖表。導(dǎo)包與讀取數(shù)據(jù):import pandas as pdimport pygalfrom pygal.style import LightStylebudget = pd.re
13、ad_csv("mn-budget-detail-2014.csv")budget = budget.sort('amount',ascending=False):10我們需要創(chuàng)建圖表類型并做一些根底設(shè)置:bar_chart = pygal.Bar(style=LightStyle, width=800, height=600,legend_at_bottom=True, human_readable=True,title='MN Capital Budget - 2014')有趣的一點是human_readable,它可以很好地格式化數(shù)據(jù),
14、所以大多數(shù)情況下, 這個功能“很管用?,F(xiàn)在我們需要向圖表中添加數(shù)據(jù),這是與pan das集成地不是很緊湊的地方,但是就本次的小數(shù)據(jù)集來說,可以直接添加數(shù)據(jù)。數(shù)據(jù)量很大時,性能可能會是一個問 題。for index, row in budget.iterrows():bar_chart.add(row"detail", row"amount")接下來,將文件渲染為svg和png格式:bar_chart.render_to_file('budget.svg')bar_chart.render_to_png('budget.png')我覺得svg的展示效果確實很好,我很喜歡看起來獨特且賞心悅目的風(fēng)格。同時 我也發(fā)現(xiàn),我們可以相對容易地弄清楚使用此工具時,哪些可以實現(xiàn),哪些不能實 現(xiàn)。我鼓勵大家下載svg文件,并在瀏覽器中感受圖表的互動效果。Pandas對于簡單的圖表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球溫濕度氣候試驗箱行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國光學(xué)有機(jī)硅膠行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球電子母豬喂料器行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國熟食冷藏展示柜行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 房屋地基買賣合同
- 2025合同模板出國勞務(wù)合同范本
- 2025房屋借款合同范本
- 2025北京市前期物業(yè)服務(wù)合同模板
- 剪輯師聘用合同資訊
- 提升殘疾人的信息獲取與溝通能力
- 小學(xué)生雪豹課件
- 基礎(chǔ)護(hù)理常規(guī)制度
- 針灸治療動眼神經(jīng)麻痹
- 傾聽幼兒馬賽克方法培訓(xùn)
- 設(shè)備日常維護(hù)及保養(yǎng)培訓(xùn)
- 2024年安全生產(chǎn)月主題2024年學(xué)校安全生產(chǎn)月活動方案
- 2024年廣東佛山市中醫(yī)院三水醫(yī)院招聘61人歷年高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 中級半導(dǎo)體分立器件和集成電路裝調(diào)工技能鑒定考試題庫(含答案)
- 固定資產(chǎn)培訓(xùn)課件共-51張
- 2024年高考語文思辨類作文預(yù)測+考前模擬題+高分范文
- 2024年演出經(jīng)紀(jì)人考試必背1000題一套
評論
0/150
提交評論