Python数据可视化,看这篇就够了
说到python的常见应用,很多人会想到python的数据分析,作为数据分析中的表现层面,数据可视化都是其中必不可少的部分。但本文 并非只推荐无任何数据分析需求仅需要做漂亮可视化图表的人 学习python数据可视化。本文介绍的只是一些常见的python第三方库,毕竟作为一个工具来说,这些第三方库使用起来并不是非常方便,也有一定的学习成本,普通的可视化推荐使用excel、wps,有条件的可以使用各种BI工具如:tableau,powerBI等。
那什么情况下需要用到python数据可视化库呢?
如果是在某些特定场景中,需要用到python做数据分析,输出各种图表用于辅助分析或者数据报告展示,那这些库则显得必不可少,接下来将介绍一些如何学习的方法和第三方库的介绍:
比如选择一款合适的库,先了解各种库的特点,选择合适的库,然后学习绘图原理,掌握的知识点
选择官网是最省钱和系统的学习的最佳路径,至于效率方面见仁见智。选择书籍或视频的方式也未尝不可。
1、了解几大常用的可视化库,比如特性、使用场景、效果图等;
2、选择一款适合自己的第三方库,比如要做国内地图类的项目,选择pyecharts;
3、学习该库的绘图原理,各种函数调用和参数修改,就是所谓的"调参";
4、不断练习、练习、练习;
推荐学习使用的开发工具:JupyterNotebook。在数据分析和可视化的应用中,jupyter无疑是首选,相比其他如pycharm等工具,可以将每一步的可视化图表输出在同一页面中,方便比较分析。
为什么需要数据可视化?
视觉是人类获取外界信息最高速,最主要也是最重要渠道。 超过50%的人脑功能用于视觉感知,而大脑接收到的信息 90% 来自视觉,人类利用视觉获取和处理的信息量,远远超出其他途径。
视觉的信息带宽是最大的,其次是触觉和听觉。
人类大脑处理图像的速度比文本快 6 万倍。所谓的“可视化”,就是利用人类视觉化的思考能力,对数据进行可视表达以增强认知的技术。
常用的可视化库介绍
- 1 -
Matplotlib
官方文档地址:
https:// matplotlib.org/2.0.2/in dex.html
Gallery画廊地址:
https:// matplotlib.org/2.0.2/ga llery.html
matplotlib是Python数据可视化库的OG。尽管它已有十多年的历史,但仍然是Python社区中使用最广泛的绘图库。它的设计与MATLAB非常相似,MATLAB是20世纪80年代开发的专有编程语言。通常在python数据分析的教程中经常会包含该库的学习。
基础讲解 :使用matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。
步骤:创建figure图形对象-> 获取对应位置的axes坐标系对象->调用axes对象,进行对应位置的图形绘制->显示图形。下图是帮助我们理解figure和axes的关系。
- 2 -
Seaborn
官方文档地址:
https:// seaborn.pydata.org/tuto rial.html
Gallery画廊地址:
https:// seaborn.pydata.org/exam ples/index.html
Seaborn利用matplotlib的强大功能,可以只用几行代码就创建漂亮的图表。关键区别在于Seaborn的默认款式和调色板设计更加美观和现代。由于Seaborn是在matplotlib之上构建的一个更高级的库,因此还需要了解matplotlib以便调整Seaborn的默认值,所以在matplotlib上的调参也可以在Seaborn上面使用。Seaborn针对的点主要是数据挖掘和机器学习中的变量特征选取,seaborn可以用短小的代码去绘制描述更多维度数据的可视化效果图。
基础讲解:原理比较简单,主要是通过sns对象调用各种类型表格的函数,这里举一个例子:
- 3 -
Pyecharts
官方文档地址:
Gallery画廊地址:
http:// gallery.pyecharts.org/# /README
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
这是国人开发的一个Echarts与Python结合的轮子,可以结合cdth等前端技术定制我们要的主题风格,功能非常强大,也是数据可视化非常常用的一个工具,也是比较推荐新手学习的。
基础讲解: 选择图表类型-> 声明图形类并添加数据,比如添加x轴和y轴的数据->选择全局变量set_global_opts,设置参数->显示及保存图表;
注:各种不同的图表输入的数据格式会有所不同,导致部分复杂图表的设置难度较大。
- 4 -
ggplot
官方文档地址:
ggplot基于ggplot2,一个 R 语言绘图系统,以及The Grammar of Graphics的概念。ggplot的运行方式与matplotlib不同:它允许你对组件进行分层以创建完整的绘图。例如,你可以从轴开始画,然后添加点,然后是线、趋势线等。虽然图形语法被称为绘图的“直观”方法,但经验丰富的matplotlib用户可能需要时间来适应这个新的方式。
- 5 -
Bokeh
官方文档地址:
https:// docs.bokeh.org/en/lates t/
Gallery画廊地址:
https:// docs.bokeh.org/en/lates t/docs/gallery.html
与ggplot一样,Bokeh同样基于The Grammar of Graphics,但与ggplot不同的是,它是原生Python的,而不是从R语言移植过来的。它的优势在于能够创建交互式的网站图,它可以很容易地输出为JSON对象、HTML或交互式Web应用程序。Bokeh还支持流媒体和实时数据。
- 6 -
Pygal
官方文档地址:
http://www. pygal.org/en/stable/
与Bokeh和Plotly一样,pygal提供可以嵌入Web浏览器的交互式图。它的主要区别在于能够将图表输出为SVG格式。如果你使用较小的数据集,SVG格式的图像就可以了。但是如果制作的图表包含数十万个数据点,它们就会很难渲染并变得反应迟钝。
- 7 -
Plotly
官方文档地址:
你可能知道Plotly是一个数据可视化的在线平台,但你是否也知道可以从Python笔记本使用它的功能?与Bokeh一样,Plotly的强项正在制作交互式图,但它提供了一些在大多数库中没有的图表,如等高线图,树状图和3D图表。
- 8 -
Geoplotlib
Github地址:
https:// github.com/andrea-cutto ne/geoplotlib
geoplotlib是一个用于创建地图和绘制地理数据的工具库。可以使用它来创建各种地图类型,例如等值线,热图和点密度贴图。你必须安装Pyglet(面向对象的编程接口)才能使用geoplotlib。尽管如此,由于大多数的Python数据可视化库都没有提供地图类型,因此有一个专门的库还是可以的。
参考文章:《数据可视化入门教程》 https://www. yuque.com/mo-college/be ginner-tutorial/uvaiu2
深度讲解Python四大常用绘图库的“绘图原理” https:// my.oschina.net/u/457959 7/blog/4444177