大数跨境
0
0

数据可视化 | 6个基本可视化Python库

数据可视化 | 6个基本可视化Python库 数据皮皮侠
2020-10-30
0
导读:数据可视化是使用可视元素(例如图表,图形等)表示数据的过程,有助于从数据中获取有意义的见解。它旨在揭示数据背


数据可视化是使用可视元素(例如图表,图形等)表示数据的过程,有助于从数据中获取有意义的见解。它旨在揭示数据背后的信息,并进一步帮助查看者查看数据中的结构。


数据可视化将使任何人只要对数据科学的了解最少,即可获得科学发现,并帮助人们轻松地交流信息。毕竟,一张图片胜过千言万语。


在本文中我们将介绍一些Python支持的最出色的可视化库。这6个可视化库均有独特之处,可以解决特定类型的可视化任务。




Let's Go


1、Matplotlib




matplotlib以其在Python中作为二维绘图库提供的高度灵活性而著称。如果您有MATLAB编程背景,您会对Matplotlib的Pyplot接口非常熟悉。

Matplotlib的独特功能

Matplotlib可以在Python中以多种方式使用,包括Python脚本,Python和iPython shell,Jupyter Notebooks以及其他不可用的东西。这就是为什么它不仅经常被数据科学家用来创建可视化效果,而且还被研究人员用来创建具有出版质量的图表的原因。

Matplotlib开箱即用地支持所有流行的图表(图表,直方图,功率谱,条形图,误差图,散点图等)。还可以使用扩展来创建高级可视化效果,例如3维图等。

使用Matplotlib库绘制实例:

import numpy as npimport matplotlib.pyplot as pltimport mpl_toolkits.mplot3d#数据a,b = np.mgrid[-2:2:20j,-2:2:20j]c=a*np.exp(-a**4-b**2)#三维图形ax = plt.subplot(111, projection='3d')ax.set_title('matplotlib demo')ax.plot_surface(a,b,c,rstride=2, cstride=1, cmap=plt.cm.Spectral)#设置坐标轴标签ax.set_xlabel('X')ax.set_ylabel('Y')ax.set_zlabel('Z')plt.show()

实例图:

matplotlib非常灵活,它使用户可以在最细粒度的层次上控制可视化的各个方面,从图形中的单条线或点到整个图表。这意味着可以在最高级别对其进行自定义。

■ ■■■


2、Seaborn

当我们看到Seaborn构建的可视化效果时,只会想到一个词-–美丽!Seaborn建立在matplotlib基础之上,它提供了一个非常简单而且直观的界面来构建可视化。使用Seaborn时,您将注意到,绘图中的许多默认设置都可以直接使用。

Seaborn的独特功能

Seaborn的第一个独特之处是它的设计方式,只需编写较少的代码即可实现高级可视化,Seaborn提供了许多的在线数据,方便初学者获取数据构建图表。下面的例子是展示使用Seaborn在线数据且用一行绘图代码就可以创建一个复杂的可视化文件:

散点图实例代码:

import seaborn as snsimport matplotlib.pyplot as plt#设置主题,Seaborn有五个预设主题: darkgrid , whitegrid , dark , mwhite ,和 ticks sns.set(style="white")#使用在线数据mpg = sns.load_dataset("mpg")#设数据图表格式sns.relplot(x='horsepower', y='mpg', hue="origin", size="weight", sizes=(40, 400), alpha=0.5, palette="muted", height=6, data=mpg)plt.show()

数据集:

效果图:


Seaborn的第二个实用功能是它支持大量高级图,例如分类图(catplot),使用kde的分布图(distplot),群体图等。

分类图实例代码:

#使用在线数据tips = sns.load_dataset("tips")#设数据图表格式sns.catplot(x="day", y="total_bill", kind="swarm", data=tips)

效果图:

目前,由于Seaborn是建立在matplotlib之上的,因此与它高度兼容,意味着在构建可视化时,可以从seaborn已经支持的高级绘图开始,然后在matplotlib的帮助下根据需要进行任意自定义。

■ ■■■

3、Bokeh


Bokeh是一个旨在生成可视化效果的库,可在Web界面和浏览器上使用。这就是该可视化库专门针对的。

您还将注意到,从Bokeh生成的可视化文件本质上是交互式的,这基本上意味着您可以通过绘图以更直观的方式传达信息。

Bokeh的独特功能

Bokeh支持开箱即用的独特可视化,例如地理空间图,网络图等。如果要在浏览器中显示这些可视化效果,则可以选择导出它们,也可以通过JavaScript本身使用它!

Bokeh是用于以标准可视化形式呈现信息的高级界面。这些形式包括箱形图,条形图,面积图,热图,甜甜圈图等。您可以通过传递数据帧,numpy数组和字典来生成这些图。以在笔记本计算机的XY框架上创建一个分散的正方形标记为例:

示例代码:

from bokeh.plotting import figure,output_notebook, show           #输出给笔记本                                       output_notebook()                           p=figure(plot_width=400,plot_heigt =400)    p.square([2,5,6,4],[2,3,2,1,2],size=20,color="navy")             show(p)

效果图:


在上面的图表中,您可以在顶部看到工具(缩放,调整大小,重置,滚轮缩放),这些工具使您可以与图表进行交互。

■ ■■■

4、Altair




Altair是用于数据可视化的声明性库。它的原理是,不应该专注于可视化部分,而应该专注于可视化部分并编写尽可能少的代码,并且仍然能够创建美观直观的图。

Altair的独特功能

由于Altair使用声明式样式创建图,因此在使用此库时,以快速的速度遍历可视化和实验变得非常容易和快速。以各线城市插座尺寸的条形图为例:

示例代码:

Chart(df).mark_bar(stacked='normalize').encode( Y('Outlet_Location_Type'), X('count(*):Q', sort='descending'), Color('Outlet_Size:N'))

效果图:


上图绘制的是堆叠的条形图,它表示二线城市的网点只有小尺寸的网点,而只有三线城市的网点是大尺寸的网点。

请注意,这里我们已经以X编码定义了计数聚合器,以便生成水平堆栈图。

■ ■■■

5、Plotly

Plotly库最独特之处就在于它的互动性,当您需要用户高度交互可视化文件,这个数据可视化库将会成为你的的首选库。


首先让我们来感受一下Plotly库的魅力所在:



Plotly的独特功能


Plotly与Jupyter Notebook和Web浏览器高度兼容。这意味着您创建的任何交互式图都可以轻松地以相同的方式与您的团队成员或最终用户共享。

Plotly支持从基本图表类型到3D图、科学图等高级图在内的所有图表类型,同时它还支持基于地图的可视化以及动画功能。

现在让我们使用plotly库绘制一个折线图吧!

实例代码:

import plotly.graph_objects as go import plotly.offline as of     # 这个为离线模式的导入方法import pandas as pd #使用pandas处理csv数据
data = pd.read_csv(r'C:\Users\admin\Desktop\plotly.csv')print(data.head()) #显示5条数据# Scatterline1 = go.Scatter(y=data['Auckland'], x=data['DATE'], name='Auckland') # name定义每条线的名称line2 = go.Scatter(y=data['Wellington'], x=data['DATE'], name='Wellington')fig = go.Figure([line1, line2])fig.update_layout( title = 'New Zealand Weather', #定义生成的plot 的标题 xaxis_title = 'DATE', #定义x坐标名称 yaxis_title = 'Weather' #定义y坐标名称)of.plot(fig)

数据包:

效果图:

Plotly Express 是一个新的高级 Python 可视化库:它是 Plotly.py 的高级封装并与Plotly生态系统的其他部分完全兼容,它为复杂的图表提供了一个简单的语法。

受Seaborn和ggplot2的启发,它专门设计为具有简洁,一致且易于学习的 API:只需一次导入,您就可以在一个函数调用中创建丰富的交互式绘图,包括分面绘图(faceting)、地图、动画和趋势线。它带有数据集、颜色面板和主题,就像Plotly.py一样。

以下是内置的 Gapminder 数据集的示例,显示2007年按国家/地区的人均预期寿命和人均GDP 之间的趋势:

实例代码:

import plotly.express as pximport plotly.offline as ofgapminder = px.data.gapminder()    a=px.choropleth(gapminder, locations='iso_alpha', color='lifeExp',             hover_name='country', animation_frame='year',             color_continuous_scale=px.colors.sequential.Plasma,             projection='natural earth')of.plot(a)

效果图:


■ ■■■

6、Ggplot


ggplot是著名的R ggplot2和图形语言Grammer的Python版本。如果您以前在R中使用过它,您将知道使用此库创建图表有多么简单。虽然有些功能不如R中的完善,但普通作图已经足够。

ggplot的灵活性可以使在动态构建绘图时轻松地处理数据。

ggplot的独特功能

ggplot也是像Bokeh一样的声明式样式库,但也与Pandas紧密结合。这意味着您可以使用Pandas数据框本身轻松构建可视化!

 使用ggplot库绘制散点图:

import ggplot as gpimport pandas as pdmeat = gp.meatp=gp.ggplot(gp.aes(x='date',y='beef'),data=meat)+gp.geom_point(color='red')+gp.ggtitle(u'散点图')print(p)

效果图:

■ ■■■


在本文中,我们探索了一些在Python中执行数据可视化的必不可少的库。这些库中的每一个都有其自身的优势,并能够在不同的场景中大放异彩。

大数据可视化的开发和大部分项目开发一样,也是根据需求对数据维度或属性进行筛选,根据目的和用户群选用表现方式。同一份数据可以可视化成多种看起来截然不同的形式。

大数据可视化展示技术作为近年来兴起的新型展示技术,通过图表的直观性与交互的便利性,对内可以增强决策能力、提高工作效率,对外可以让观众一目了然地了解企业的主营业务与公司实力,在临展当中,更是可以通过摆出观众平时难以接触到并且感兴趣的内容,来达到抓人眼球的目的,在人潮熙攘的展会当中,这样的吸引观众驻足的技术无疑是提高展示效果的利器


 end 


原文链接:  https://www.analyticsvidhya.com/blog/2020/03/6-data-visualization-python-libraries/



【声明】内容源于网络
0
0
数据皮皮侠
社科数据综合服务中心,立志服务百千万社科学者
内容 2137
粉丝 0
数据皮皮侠 社科数据综合服务中心,立志服务百千万社科学者
总阅读2.3k
粉丝0
内容2.1k