楊凱利 山美娟


摘 ?要:在大數據快速發展的今天,Python豐富的工具包在科學計算、文件處理、數據可視化等領域越來越凸顯其價值。能夠發現數據、清洗數據,并使用正確的工具實現數據可視化至關重要。本文敘述了Python軟件第三方庫的安裝和繪圖工具的應用,并利用Numpy和Matplotlib庫進行數據可視化,分析大學生通識能力情況,通過實踐展示了Python庫的強大功能和使用步驟,為學習數據可視化的讀者提供參考。
關鍵詞:Python;數據可視化;數據分析;第三方庫
中圖分類號:TP391.1 ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)05-0030-03
Abstract:With the rapid development of big data,Pythons rich toolkits are becoming more and more valuable in the fields of scientific computing,file processing,data visualization and so on. It is essential to be able to discover,clean and visualize data using the right tools. This paper describes the installation of the third library of Python software and the application of drawing tools,and uses Numpy and Matplotlib libraries for data visualization,analyses the general knowledge ability of college students,and demonstrates the powerful functions and using steps of Python library through practice,which provides a reference for the readers who study data visualization.
Keywords:Python;data visualization;data analysis;third-party library
0 ?引 ?言
Python是目前市面上用于大數據分析的優先選擇,Python數據分析功能強大,對數據抽取、收集整理、分析挖掘及展示,都可以實現,避免了開發程序的切換。Python的數據挖掘能力和產品構建能力兼而有之,是跨平臺且開源的技術,成本較小。
數據時代,通過數據分析挖掘數據的價值,Python就是很好的選擇,它包含了Numpy、Pandas、Matplotlib、SciPy、iPython等主要數據分析庫。數據可視化是數據探索的主要途徑。數據可視化的目標是通過所選方法的視覺展示、清晰有效地與用戶交流信息。有效的可視化有助于分析和推理數據和證據。這使得復雜數據更容易接觸、理解和使用。
1 ?數據可視化工具
俗話說,一圖勝千言。數據可視化不僅是一種技能,更是一門藝術。Python中的可視化工具包括通用的軟件工具和特定軟件組件。通用的軟件工具是集成開發環境(IDE),這是一種同一軟件包內囊括所有生產工具的應用程序。Enthought中的Canopy和Continuum Analytics中的Anaconda都是比較方便的工具。特定的軟件繪圖組件是Python繪圖庫,比如Bokeh、iPython、Matplotlib、NetworkX、Scipy、Numpy、Scikit-learn以及Seaborn。
Plotly是一種在線分析和數據可視化工具。為更好地協作,Plotly提供了在線畫圖、分析學和統計工具。這種工具通過將Python與使用JavaScript的用戶界面及和D3.js、HTML和CSS創建的可視化庫一起使用來構建。Plotly包括多語言兼容的科學繪圖庫,比如Arduino、Julia、MATLAB、Python和R。
最常用的可視化類型包含以下分類:比較和排名、相關性、分布、位置定位或地理數據、局部到整體的關系、隨時間的變化趨勢等。
2 ?Python第三方庫的使用
Python語言有標準庫和第三方庫兩類,標準庫隨Python安裝包一起發布,用戶可以隨時使用,第三方庫需要安裝后才能使用。強大的標準庫奠定了Python發展的基石,豐富的第三方庫是Python不斷發展的保證,隨著Python的發展,一些穩定的第三庫被加入到了標準庫里面。
2.1 ?Python第三方庫的安裝
Python第三方庫有三種安裝方式,pip工具安裝、自定義安裝和文件安裝。最常用且最高效的Python第三方庫安裝方式是pip工具安裝,本文只介紹pip工具安裝方法。
pip是Python內置命令,需要通過命令行執行。通過pip-h命令將列出pip常用的子命令。安裝一個庫的命令格式為:pip install<擬安裝庫名>,比如安裝Matplotlib庫,就可以用命令pip install Matplotlib,打開Windows命令行程序cmd.exe,進入Python安裝目錄所在的文件夾中,并進入Scripts文件(pip在Scripts目錄下),輸入命令,pip工具默認從網絡上下載Matplotlib庫安裝文件,自動安裝到系統中。第三方庫安裝好后,可以通過pip list命令列出當前系統中已經安裝的第三方庫。
2.2 ?矩陣運算庫Numpy和繪圖庫Matplotlib概述
Numpy是用于處理含有同種元素的多維數組運算的第三方庫。Numpy庫還包括三角運算函數、傅里葉變換、隨機和概率分布、基本數值統計、位運算、矩陣運算等非常豐富的功能。
Python有很多繪圖包,而Matplotlib是它們中極其熱門的一個軟件包。Matplotlib是提供數據繪圖功能的第三方庫,其pyplot子庫主要用于實現各種數據展示圖形的繪制。Matplotlib庫由一系列有組織有隸屬關系的對象構成,這對于基礎繪圖操作來說顯得過于復雜。而pyplot子模塊將繪圖所需要的對象構建過程封裝在函數中,對用戶提供了更加友好的接口。
3 ?利用Python第三方庫進行數據可視化
雷達圖是通過多個離散屬性比較對象的最直觀工具,掌握繪制雷達圖的方法將會為生活和工作帶來樂趣。本例通過問卷調查,獲取了某大學本科一年級不同分院學生在五種核心通識能力方面的數據,經過數據整理,使用Python來繪制多級雷達圖,即在一組同心圓上填充不規則五邊形,其每個頂點到圓心的距離代表分院學生的某種能力。
3.1 ?大學生通識能力雷達圖繪制代碼
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']='SimHei'
radar_labels=np.array(['表達與溝通', '團隊合作', '分析與綜合信息','創新思維','批判性思維']) #雷達標簽
nAttr=5
data=np.array([[5, 6, 8, 6, 7],
[9, 6, 5, 7, 6],
[4, 8, 9, 8, 7],
[7, 8, 6, 7, 8],
[8, 7, 6, 7, 6]]) ? ? #數據值
data_labels=('金融學院,'文化傳媒學院,'信息學院','管理學院','人文教育學院)
angles=np.linspace(0, 2*np.pi,nAttr,endpoint= False)
data=np.concatenate((data, [data[0]]))
angles=np.concatenate((angles, [angles[0]]))
fig=plt.figure(facecolor="white")
plt.subplot(111, polar=True)
plt.plot(angles,data,'o-',linewidth=1.5, alpha= 0.2)
plt.fill(angles,data, alpha=0.25)
plt.thetagrids(angles*180/np.pi, radar_labels,1.2)
plt.figtext(0.52, 0.95,'大學生通識能力分析', ha=' center', size=20)
legend=plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)
plt.setp(legend.get_texts(), fontsize='large')
plt.grid(True)
plt.savefig('tongshi.png')
plt.show()
大學生核心通識能力包含5個屬性,設置屬性標簽lables,并預設各分院匯總數據。np.concatenate()函數用于將數據和角度的數組首尾閉合起來,便于調用plot()。圖形保存格式為Python可支持的PNG類型,最后通過show()函數顯示圖形,默認圖形文件保存路徑與代碼保存路徑相同。
3.2 ?代碼運行及實驗分析
在Python3.7 IDLE編輯環境中輸入代碼并運行,可以得到如圖1所示的內容,顯示各分院學生通識能力五個維度的效果。從圖中可以看出,學校金融學院學生的團隊合作能力較高,信息學院的分析與綜合信息能力較高。學校在通識課程設置和能力培養方面可以有所側重,通過一些工作坊和俱樂部加強學生薄弱能力的培養,旨在培養具有積極心態、獨立思考和開闊視野的全人。
4 ?結 ?論
近二十年的開源運動產生了深植于各信息技術領域的大量可重用資源,直接且有力地支撐了信息技術超越其他技術領域的發展速度,形成了“計算生態”。Python語言有大量的第三方庫,形成了龐大的“計算生態”。從游戲制作、數據處理、數據可視化分析等方面,這些“計算生態”Python使用者都提供了更加便捷的操作,以及更加靈活的編程方式,值得我們不斷嘗試與實踐。
參考文獻:
[1] [美]Wes McKinney.利用Python進行數據分析 [M].徐敬一,譯.北京:機械工業出版社,2018.
[2] [印度]Kirthi Raman.Python數據可視化 [M].程毫,譯.北京:機械工業出版社,2017.
[3] 高揚.數據科學家養成手冊 [M].北京:電子工業出版社,2017.
[4] 嵩天,禮欣,黃天羽.Python語言程序設計基礎 [M].北京:高等教育出版社,2017.
[5]葉惠仙.Python在學院招生數據分析中的應用 [J].計算機時代,2018(11):102-106.
作者簡介:楊凱利(1978-),男,漢族,陜西戶縣人,本科,工程師,研究方向:自動控制、電路與系統;山美娟(1978-),女,漢族,陜西戶縣人,碩士,講師,研究方向:數據分析、圖像處理。