如何让python可视化

2024-05-14

1. 如何让python可视化

简介
在 Python 中,将数据可视化有多种选择,正是因为这种多样性,何时选用何种方案才变得极具挑战性。本文包含了一些较为流行的工具以及如何使用它们来创建简单的条形图,我将使用下面几种工具来完成绘图示例:
Pandas
Seaborn
ggplot
Bokeh
pygal
Plotly
在示例中,我将使用 pandas 处理数据并将数据可视化。大多数案例中,使用上述工具时无需结合 pandas,但我认为 pandas 与可视化工具结合是非常普遍的现象,所以以这种方式开启本文是很棒的。
什么是 Matplotlib?
Matplotlib 是众多 Python 可视化包的鼻祖。其功能非常强大,同时也非常复杂。你可以使用 Matplotlib 去做任何你想做的事情,但是想要搞明白却并非易事。我不打算展示原生的 Matplotlib 例子,因为很多工具(特别是 Pandas 和 Seaborn)是基于 Matplotlib 的轻量级封装,如果你想了解更多关于 Matplotlib 的东西,在我的这篇文章— 《simple graphing》中有几个例子可供参考。
Matplotlib 令我最不满的地方是它花费太多工作来获得目视合理的图表,但是在本文的某些示例中,我发现无需太多代码就可以轻松获得漂亮的可视化图表。关于 Matplotlib 冗长特点的示例,可以参考这篇文章《ggplot》中的平面图示例。
方法论
简要说一下本文的方法论。我坚信只要读者开始阅读本文,他们将会指出使用这些工具的更好方法。我的目标并非在每个例子中创造出完全相同的图表,而是花费大致相同的时间探索方法,从而在每个例子中以大体相同的方法将数据可视化。
在这个过程中,我所面临的最大挑战是格式化 x 轴和 y 轴以及基于某些大的标签让数据看起来合理,弄明白每种工具是如何格式化数据的也花费了我不少精力,我搞懂这些之后,剩余的部分就相对简单了。
另外还需要注意的一点是,条形图可能是制作起来相对更简单的图表,使用这些工具可以制作出多种类型的图表,但是我的示例更加侧重的是简易的格式化,而不是创新式的可视化。另外,由于标签众多,导致一些图表占据了很多空间,所以我就擅自移除了它们,以保证文章长度可控。最后,我又调整了图片尺寸,所以图片的任何模糊现象都是缩放导致的问题,并不代表真实图像的质量。
最后一点,我以一种尝试使用 Excel 另外一款替代品的心态来实现示例。我认为我的示例在报告、展示、邮件或者静态网页中都更具说服力。如果你正在评估用于实时可视化数据的工具,亦或是通过其他途径去分享,那么其中的部分工具会提供很多我还未涉猎到的功能。
数据集
之前的文章描述了我们要处理的数据,我从每一类中抽取了更深一层的样例,并选用了更详细的元素。这份数据集包含了125行,但是为了保持简洁,我只选用了前10行,完整的数据集可以在这里找到。

如何让python可视化

2. Python 中的可视化工具介绍

 几周前,R语言社区经历了一场关于画图工具的讨论。对于我们这种外人来说,具体的细节并不重要,但是我们可以将一些有用的观点运用到 Python 中。讨论的重点是 R 语言自带的绘图工具 base R 和 Hadley Wickham 开发的绘图工具 ggplot2 之间的优劣情况。如果你想了解更多细节内容,请阅读以下几篇文章:
   其中最重要的两个内容是:
   不是所有人都认同第二个观点,ggplot2确实无法绘制出所有的图表类型,但是我会利用它来做分析。
   以下是 2016 年 4 月写的关于绘图工具的概述。出于多方面的原因,绘图工具的选取更多地取决于个人偏好,因此本文介绍的 Python 绘图工具也仅代表我的个人使用偏好。
   Matplotlib 是一个强大的工具,它是  Pandas' builtin-plotting  和  Seaborn  的基础。 Matplotlib  能够绘制许多不同的图形,还能调用多个级别的许多  API 。我发现 pyplot api 非常好用,你可能用不上 Transforms  或者  artists ,但是如果你有需求的话可以查阅帮助文档。我将从  pandas  和  seaborn  图开始介绍,然后介绍如何调用  pyplot  的 API 。
    DataFrame  和  Series  拥有  .plot  的命名空间,其中有许多图形类别可供选择(line, hist, scatter, 等等)。  Pandas  对象还提供了额外的用于增强图形展现效果的数据,如索引变量。   由于  pandas  具有更少的向后兼容的限制,所以它具有更好的美学特性。从这方面来说,我认为  pandas  中的  DataFrame.plot  是一个非常实用的快速探索性分析的工具。
    Michael Waskom  所开发的  Seaborn  提供了一个高层次的界面来绘制更吸引人统计图形。 Seaborn  提供了一个可以快速探索分析数据不同特征的  API  接口,接下来我们将重点介绍它。
    Bokeh  是一款针对浏览器开发的可视化工具。   和  matplotlib  一样,**Bokeh   ** 拥有一系列  API  接口。比如  glpyhs  接口,该接口和  matplotllib  中的  Artists  接口非常相似,它主要用于绘制环形图、方形图和多边形图等。最近  Bokeh  又开放了一个新的图形接口,该接口主要用于处理词典数据或  DataFrame  数据,并用于绘制罐头图。
   以下是一些本文没有提到的可视化工具:
   我们将利用  ggplot2  中的  diamonds  数据集,你可以在  Vincent Arelbundock's RDatasets  中找到它(pd.read_csv(' http://vincentarelbundock.github.io/Rdatasets/csv/ggplot2/diamonds.csv') ),此外我们还需要检测是否已经安装 feather 。
                                                                                                                           [站外图片上传中……(4)]
   Bokeh 提供了两个 API,一个是低级的 glyph API,另一个是高级的 Charts API。
   [站外图片上传中……(5)]
   还不是很清楚我们应该在啥时候利用 Bokeh 来进行探索性分析,不过它的交互式功能可以激发我的兴趣。就个人而言,由于习惯问题我平时仍然一直使用 matplotlib 来绘图,我还无法完全切换到 Bokeh 中。
   我非常喜欢 Bokeh 的仪表盘功能和 bokeh server 的 webapps。
   [站外图片上传中……(6)]
   [站外图片上传中……(7)]
   [站外图片上传中……(8)]
   matplotlib 并不局限于处理 DataFrame 数据,它支持所有使用  getitem  作为键值的数据类型。
   [站外图片上传中……(9)]
   [站外图片上传中……(10)]
   我们从列变量的名字中提取出轴标签,利用 Pandas 可以更加便捷地绘制一系列共享 x 轴数据的图形。
   [站外图片上传中……(11)]
   [站外图片上传中……(12)]
   本文中的剩余部分将重点介绍 seaborn和为什么我认为它是探索性分析的强大工具。
   我强烈建议你阅读 Seaborn 的 introductory notes,这上面介绍了 seaborn 的设计逻辑和应用领域。
   我们可以通过一个稳定的且易懂的 API 接口来调用 Seaborn。
   事实上,seaborn 是基于 matplotlib 开发的,这意味着如果你熟悉 pyplot API的话,那么你可以很容易地掌握 seaborn。
   大多数 seaborn 绘图函数的参数都由 x, y, hue, 和 data 构成(并不是所有的参数都是必须的)。如果你处理的对象是 DataFrame,那么你可以直接将列变量的名称和数据集的名称一同传递到绘图函数中。
   [站外图片上传中……(13)]
   [站外图片上传中……(14)]
   [站外图片上传中……(15)]
   [站外图片上传中……(16)]
   我们可以很轻易地探究两个变量之间的关系:
   [站外图片上传中……(17)]
   [站外图片上传中……(18)]
   或者一次探究多个变量之间的关系:
   [站外图片上传中……(19)]
   [站外图片上传中……(20)]
   pariplot 是 PairGrid 的一个包装函数,它提供了 seaborn 一个重要的抽象功能——Grid。Seaborn 的 Grid 将 matplotlib 中Figure 和数据集中的变量联系起来了。
   我们有两种方式可以和 grids 进行交互操作。其一,seaborn 提供了类似于 pairplot 的包装函数,它提前设置了许多常见任务的参数;其二,如果你需要更多的自定义选项,那么你可以直接利用 Grid 方法。
   [站外图片上传中……(21)]   [站外图片上传中……(22)]
   [站外图片上传中……(23)]   34312 rows × 7 columns
   [站外图片上传中……(24)]   [站外图片上传中……(25)]
   FaceGrid 可以通过控制分面变量来生成 Grid图形,其中PairGrid是它的一个特例。接下来的案例中,我们将以数据集中的 cut 变量为分面变量来绘制图像:   [站外图片上传中……(26)]
   [站外图片上传中……(27)]   最后一个案例展示了如何将 seaborn 和 matplotlib 结合起来。g.axes是matplotlib.Axes的一个数组,g.fig是matplotlib.Figure的一个特例。这是使用 seaborn 时常见的一个模式:利用 seaborn 的方法来绘制图像,然后再利用 matplotlib 来调整细节部分。
   我认为 seaborn 之所以吸引人是因为它的绘图语法具有很强的灵活性。你不会被作者所设定的图表类型所局限住,你可以根据自己的需要创建新的图表。   [站外图片上传中……(28)]
   [站外图片上传中……(29)]
   [站外图片上传中……(30)]
   [站外图片上传中……(31)]
   本来,我打算准备更多的例子来介绍 seaborn,但是我会将相关链接分享给大家。Seaborn 的说明文档写的非常详细。
   最后,我们将结合 scikit-learn 来介绍如何利用 GridSearch 来寻找最佳参数。   [站外图片上传中……(32)]
   [站外图片上传中……(33)]
   [站外图片上传中……(34)]
   原文链接: http://tomaugspurger.github.io/modern-6-visualization.html 
     译者:Fibears

3. 怎样用python进行数据可视化

用python进行数据可视化的方法:可以利用可视化的专属库matplotlib和seaborn来实现。基于python的绘图库为matplotlib提供了完整的2D和有限3D图形支持。
我们只需借助可视化的两个专属库(libraries),俗称matplotlib和seaborn即可。
(推荐教程:Python入门教程)
下面我们来详细介绍下:
Matplotlib:基于Python的绘图库为matplotlib提供了完整的2D和有限3D图形支持。这对在跨平台互动环境中发布高质量图片很有用。它也可用于动画。
Seaborn:Seaborn是一个Python中用于创建信息丰富和有吸引力的统计图形库。这个库是基于matplotlib的。Seaborn提供多种功能,如内置主题、调色板、函数和工具,来实现单因素、双因素、线性回归、数据矩阵、统计时间序列等的可视化,以让我们来进一步构建复杂的可视化。

怎样用python进行数据可视化

4. python数据可视化--可视化概述

数据可视化是python最常见的应用领域之一,数据可视化是借助图形化的手段将一组数据以图形的形式表达出来,并利用数据分析和开发工具发现其中未知信息的数据处理过程。
  
 在学术界有一句话广为流传,A picture worths thousand words,就是一图值千言。在课堂上,我经常举的例子就是大家在刷朋友圈的时候如果看到有人转发一篇题目很吸引人的文章时,我们都会点击进去,可能前几段话会很认真地看,文章很长的时候后面就会一目十行,失去阅读的兴趣。
  
 所以将数据、表格和文字等内容用图表的形式表达出来,既能提高读者阅读的兴趣,还能直观表达想要表达的内容。
  
 python可视化库有很多,下面列举几个最常用的介绍一下。
  
 matplotlib
  
 它是python众多数据可视化库的鼻祖,也是最基础的底层数据可视化第三方库,语言风格简单、易懂,特别适合初学者入门学习。
  
 seaborn
  
 Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。
  
 pyecharts
  
 pyecharts是一款将python与echarts结合的强大的数据可视化工具,生成的图表精巧,交互性良好,可轻松集成至 Flask,Sanic,Django 等主流 Web 框架,得到众多开发者的认可。
  
 bokeh
  
 bokeh是一个面向web浏览器的交互式可视化库,它提供了多功能图形的优雅、简洁的构造,并在大型数据集或流式数据集上提供高性能的交互性。
  
 python这些可视化库可以便捷、高效地生成丰富多彩的图表,下面列举一些常见的图表。
  
 柱形图
  
 条形图
  
 坡度图
  
 南丁格尔玫瑰图
  
 雷达图
  
 词云图
  
 散点图
  
 等高线图
  
 瀑布图
  
 相关系数图
  
 散点曲线图
  
 直方图
  
 箱形图
  
 核密度估计图
  
 折线图
  
 面积图
  
 日历图
  
 饼图
  
 圆环图
  
 马赛克图
  
 华夫饼图
  
 还有地理空间型等其它图表,就不一一列举了,下节开始我们先学习matplotlib这个最常用的可视化库。

5. python如何做界面

PyQt,一个基于Qt的Python接口包,可以直接使用Qt的控件,还可以使用QSS进行界面美化,下面我简单介绍一下这个包的安装和使用,实验环境Win7+Python3.6+PyCharm5.0,主要内容如下:
1.首先,安装PyQt,这个直接在cmd窗口输入命令“pip install pyqt5”就行,如下,由于安装包比较大,所以需要等待一会儿:

这里我新建了一个简单的窗口程序,一个登录页面对话框,2个QLabel,2个QLineEdit和2个QPushButton,如下,设计完成后,可以直接编辑对应控件的styleSheet属性,利用QSS(类似CSS)对控件进行美化,也可以在代码中进行详细美化设计(如果美化比较复杂的话,可以专门编写QSS文件,然后在程序中加载就行):

这里我新建了一个简单的窗口程序,一个登录页面对话框,2个QLabel,2个QLineEdit和2个QPushButton,如下,设计完成后,可以直接编辑对应控件的styleSheet属性,利用QSS(类似CSS)对控件进行美化,也可以在代码中进行详细美化设计(如果美化比较复杂的话,可以专门编写QSS文件,然后在程序中加载就行):

设计完成的UI界面,可以直接使用自带转化工具pyuic5转化为Python程序(命令pyuic5 -o py文件 ui文件,如pyuic5 -o test.py test.ui),如下,就是刚才设计的UI界面的Python代码:

这里我们再添加一下main函数,直接创建上面类的对象,显示对话框就行,如下:

点击运行这个程序,效果如下,和上面设计的一样,非常方便:

python如何做界面

6. Python实现50个常见可视化图

 每当我们需要对数据做可视化呈现时,总是疑虑及烦恼所呈现的图形是怎么样的,如何实现。这里给大家分享一下,常见的50种常见可视化图形。
    数据源 
                                                                                                                           这里以几个图形数据为例展示。
    散点图(Scatter plot)    散点图是用于研究两个变量之间关系的经典的和基本的图表。如果数据中有多个组,则可能需要以不同颜色可视化每个组。您可以使用 plt.scatterplot() 方便地执行此操作。
                                            抖动图(Jittering with stripplot)    通常,多个数据点具有完全相同的 X 和 Y 值。结果,多个点绘制会重叠并隐藏。为避免这种情况,请将数据点稍微抖动,以便您可以直观地看到它们。
   使用 seaborn 的 stripplot() 很方便实现这个功能。
                                            相关图(Correllogram)    相关图用于直观地查看给定数据框(或二维数组)中所有可能的数值变量对之间的相关度量。
                                           更多资料请参考 原文