杨凯利 山美娟
摘 要:在大数据快速发展的今天,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-),女,汉族,陕西户县人,硕士,讲师,研究方向:数据分析、图像处理。