建立自己的网站需要多少钱,国家建设免费论文网站,重庆建设摩托车股份有限公司官网,字母logo在线设计原作者 Parul Pandey晓查 编译整理量子位 出品 | 公众号 QbitAI数据转化成更直观的图片#xff0c;对于理解数据背后的真相很有帮助。如果你有这方面的需求#xff0c;而且还在使用Python#xff0c;那么强烈推荐你试一试Altair。Altair是一个专为Python编写的可视化软件包对于理解数据背后的真相很有帮助。如果你有这方面的需求而且还在使用Python那么强烈推荐你试一试Altair。Altair是一个专为Python编写的可视化软件包它能让数据科学家更多地关注数据本身和其内在的联系。Altair由华盛顿大学的数据科学家Jake Vanderplas编写目前在GitHub上已经收获超过3000星。最近Medium上一位小姐姐Parul Pandey分享了Altair的入门教程希望对从事数据科学的用户有帮助。量子位对主要内容进行了编译整理。使用教程Parul以汽车数据为例将一个汽车数据集“cars”载入到Altair中。cars中包含汽车的生产年份、耗油量、原产国等9个方面的数据后面将对这些内容进行可视化处理。安装和导入Altair软件包除了安装Altair和它的依赖软件外还需要安装其他前端工具比如Jupyter Notebook、JupyterLab、Colab等等。Parul小姐姐推荐安装JupyterLab$ pip install -U altair vega_datasets jupyterlab需要注意的是由于Altair的教程文档中还包含vega数据集因此也需要一并安装上。接着在终端中输入jupyter lab就能在你的浏览器中自动打开它啦。在代码开头别忘了导入Altairimport altair as alt完成以上准备工作我们就可以开始绘图了开始绘制图表Altair中的基本对象是Chart它将数据框作为单个参数。你可以这样定义它chart alt.Chart(cars)Chart有三个基本方法数据(data)、标记(mark)和编码(encode)使用它们的格式如下alt.Chart(data).mark_point().encode(encoding_1column_1,encoding_2column_2,# etc.)数据顾名思义直接导入cars数据集即可。标记和编码则决定着绘制图表的样式下面着重介绍这两部分。标记可以让用户在图中以不同形状来表示数据点比如使用实心点、空心圆、方块等等。如果我们只调用这个方法那么所有的数据点都将重叠在一起这显然是没有意义的还需要有编码来指定图像的具体内容。常用的编码有x: x轴数值y: y轴数值color: 标记点颜色opacity: 标记点的透明度shape: 标记点的形状size: 标记点的大小row: 按行分列图片column: 按列分列图片以汽车的耗油量为例把所有汽车的数据绘制成一个一维散点图指定x轴为耗油量alt.Chart(cars).mark_point().encode(xMiles_per_Gallon)但是使用mark_point()会让所有标记点混杂在一起为了让图像更清晰可以替换成棒状标记点mark_tick()alt.Chart(cars).mark_tick().encode(xMiles_per_Gallon)以耗油量为X轴、马力为Y轴绘制所有汽车的分布就得到一张二维图像alt.Chart(cars).mark_line().encode(xMiles_per_Gallon,yHorsepower)给图表上色前面我们已经学会了绘制二维图像如果能给不同组的数据分配不同的颜色就相当于给数据增加了第三个维度。alt.Chart(cars).mark_point().encode(xMiles_per_Gallon,yHorsepower,colorOrigin)上面的图中第三个维度“原产国”是一个离散变量。使用颜色刻度表我们还能实现对连续变量的上色比如在上图中加入“加速度”维度颜色越深表示加速度越大alt.Chart(cars).mark_point().encode(xMiles_per_Gallon,yHorsepower,colorAcceleration)数据的分类与汇总上面的例子中我们使用的主要是散点图。实际上Altair还能方便地对数据进行分类和汇总绘制统计直方图。相比其他绘图工具Altair的特点在于不需要调用其他函数而是直接在数轴上进行修改。例如统计不同油耗区间的汽车数量对X轴使用alt.X()指定数据和间隔大小对Y轴使用count()统计数量。alt.Chart(cars).mark_bar().encode(xalt.X(Miles_per_Gallon, binalt.Bin(maxbins30)),ycount())为了分别表示出不同原产国汽车的油耗分布前文提到的上色方法也能直方图中使用这样就构成一幅分段的统计直方图alt.Chart(cars).mark_bar().encode(xalt.X(Miles_per_Gallon, binalt.Bin(maxbins30)),ycount(),colorOrigin)如果你觉得上图还不够直观那么可以用column将汽车按不同原产国分列成3张直方图alt.Chart(cars).mark_bar().encode(xalt.X(Miles_per_Gallon, binalt.Bin(maxbins30)),ycount(),colorOrigin,columnOrigin)交互除了绘制基本图像Altair强大之处在于用户可以与图像进行交互包括平移、缩放、选中某一块数据等操作。在绘制图片的代码后面调用interactive()模块就能实现平移、缩放Altair还为创建交互式图像提供了一个selection的API在选择功能上我们能做出一些更酷炫的高级功能例如对选中的数据点进行统计生成实时的直方图。叠加多个图层如果把前面的汽车耗油量按年度计算出平均值alt.Chart(cars).mark_point().encode(xMiles_per_Gallon,yHorsepower,colorAcceleration)在统计学上我们还能定义平均值的置信区间为了让图表更好看可以分别列出三个不同产地汽车的耗油量平均值置信区间alt.Chart(cars).mark_area(opacity0.3).encode(xalt.X(‘Year’, timeUnit’year’),yalt.Y(‘ci0(Miles_per_Gallon)’, axisalt.Axis(title’Miles per Gallon’)),y2’ci1(Miles_per_Gallon)’,color’Origin’).properties(width600)最后我们可以用图层API将平均值和置信区间两幅图叠加起来spread alt.Chart(cars).mark_area(opacity0.3).encode(xalt.X(Year, timeUnityear),yalt.Y(ci0(Miles_per_Gallon), axisalt.Axis(titleMiles per Gallon)),y2ci1(Miles_per_Gallon),colorOrigin).properties(width800)lines alt.Chart(cars).mark_line().encode(xalt.X(Year, timeUnityear),ymean(Miles_per_Gallon),colorOrigin).properties(width800)spread lines更多内容本文只是介绍了Altair的一些基本使用方法远远不能涵盖它所有的功能。如果需要了解更多请参阅GitHub页说明https://github.com/altair-viz/altair教程原文https://medium.com/analytics-vidhya/exploratory-data-visualisation-with-altair-b8d85494795c— 完 —诚挚招聘