资讯专栏INFORMATION COLUMN

Python大数据可视化控制模块altair的应用详细说明

89542767 / 570人阅读

  Altair被称作是统计分析大数据可视化库,因为他能通过筛选、数据变换、数据交换、图型复合型等。这篇文章跟大家聊一聊Python之中的altair大数据可视化控制模块,同时通过读取该控制模块来制作某些比较常见的数据图表,有兴趣的话可以认识一下。


  接下来小编来跟大伙儿聊一聊Python之中的altair大数据可视化控制模块,同时通过读取该控制模块来制作某些比较常见的数据图表,依靠Altair,大家能将更多精力与时间放到了解数据信息自身及其数据的意义上边,从繁杂的大数据可视化环节中解放出来。


  Altair是啥


  Altair被称作是统计分析大数据可视化库,因为他能通过筛选、数据变换、数据交换、图型复合型等形式全方位地了解数据信息、认知和处理数据,而且其安装全过程也是相当的简易,先通过pip指令去执行,如下所示

   pip install altair
  pip install vega_datasets
  pip install altair_viewer


  如果使用的是conda包管理器来安装Altair模块的话,代码如下

  conda install-c conda-forge altair vega_datasets


  Altair初体验


  我们先简单地来尝试绘制一个直方图,首先创建一个DataFrame数据集,代码如下


  df=pd.DataFrame({"brand":["iPhone","Xiaomi","HuaWei","Vivo"],
  "profit(B)":[200,55,88,60]})


  接下来便是绘制直方图的代码


  import altair as alt
  import pandas as pd
  import altair_viewer
  chart=alt.Chart(df).mark_bar().encode(x="brand:N",y="profit(B):Q")
  #展示数据,调用display()方法
  altair_viewer.display(chart,inline=True)


  output

01.png

      从总体的句法结构来说,最先使用alt.Chart()特定所使用的数据信息,随后应用实例方法mark_*()制图数据图表的款式,最终特定X轴和Y轴所代表数据信息,可能很多人会觉得好奇心,之中的N及其Q各自代表了哪些,这是变量类型的缩写形式,也就是说,Altair模块要了解图形绘制所涉及到的变量类型,惟其如此,制作的图型才是期待的实际效果。


     这其中的N代表了为名型自变量(Nominal),比如手机的品牌全是一个一个专业名词,而Q代表了数值型变量(Quantitative),可分为离散型数据信息(discrete)和离散型数据信息(continuous),另外还有时间序列分析型数据信息,简写是T及其顺序型自变量(O),比如在网上购物过程中对这些商户的定级有1-5个等级。


  图表的保存


  最后的图表的保存,我们可以直接调用save()方法来保存,将对象保存成HTML文件,代码如下

  chart.save("chart.html")


  也可以保存成JSON文件,从代码上来看十分的相类似


  chart.save("chart.json")

  当然我们也能够保存成图片格式的文件,如下图所示

02.png

  Altair之进阶操作


  我们在上面的基础之上,进一步的衍生和拓展,例如我们想要绘制一张水平方向的条形图,X轴和Y轴的数据互换,代码如下


  chart=alt.Chart(df).mark_bar().encode(x="profit(B):Q",y="brand:N")
  chart.save("chart1.html")


  output

03.png

  同时我们也来尝试绘制一张折线图,调用的是mark_line()方法代码如下


  ##创建一组新的数据,以日期为行索引值
  np.random.seed(29)
  value=np.random.randn(365)
  data=np.cumsum(value)
  date=pd.date_range(start="20220101",end="20221231")
  df=pd.DataFrame({"num":data},index=date)
  line_chart=alt.Chart(df.reset_index()).mark_line().encode(x="index:T",y="num:Q")
  line_chart.save("chart2.html")

04.png

  我们还可以来绘制一张甘特图,通常在项目管理上面用到的比较多,X轴添加的是时间日期,而Y轴上表示的则是项目的进展,代码如下


  project=[{"project":"Proj1","start_time":"2022-01-16","end_time":"2022-03-20"},
  {"project":"Proj2","start_time":"2022-04-12","end_time":"2022-11-20"},
  ......
  ]
  df=alt.Data(values=project)
  chart=alt.Chart(df).mark_bar().encode(
  alt.X("start_time:T",
  axis=alt.Axis(format="%x",
  formatType="time",
  tickCount=3),
  scale=alt.Scale(domain=[alt.DateTime(year=2022,month=1,date=1),
  alt.DateTime(year=2022,month=12,date=1)])),
  alt.X2("end_time:T"),
  alt.Y("project:N",axis=alt.Axis(labelAlign="left",
  labelFontSize=15,
  labelOffset=0,
  labelPadding=50)),
  color=alt.Color("project:N",legend=alt.Legend(labelFontSize=12,
  symbolOpacity=0.7,
  titleFontSize=15)))
  chart.save("chart_gantt.html")

05.png

  从上图中我们看到团队当中正在做的几个项目,每个项目的进展程度不同,当然了,不同项目的时间跨度也不尽相同,表现在图表上面的话就显得十分的直观了。


  紧接着,我们再来绘制散点图,调用的是mark_circle()方法,代码如下


  df=data.cars()
  ##筛选出地区是“USA”也就是美国的乘用车数据
  df_1=alt.Chart(df).transform_filter(
  alt.datum.Origin=="USA"
  )
  df=data.cars()
  df_1=alt.Chart(df).transform_filter(
  alt.datum.Origin=="USA"
  )
  chart=df_1.mark_circle().encode(
  alt.X("Horsepower:Q"),
  alt.Y("Miles_per_Gallon:Q")
  )
  chart.save("chart_dots.html")
  当然我们可以将其进一步的优化,让图表显得更加美观一些,添加一些颜色上去,代码如下
  chart=df_1.mark_circle(color=alt.RadialGradient("radial",[alt.GradientStop("white",0.0),
  alt.GradientStop("red",1.0)]),
  size=160).encode(
  alt.X("Horsepower:Q",scale=alt.Scale(zero=False,padding=20)),
  alt.Y("Miles_per_Gallon:Q",scale=alt.Scale(zero=False,padding=20))
  )
  我们更改散点的大小,不同散点的大小代表着不同的值,代码如下
  chart=df_1.mark_circle(color=alt.RadialGradient("radial",[alt.GradientStop("white",0.0),
  alt.GradientStop("red",1.0)]),
  size=160).encode(
  alt.X("Horsepower:Q",scale=alt.Scale(zero=False,padding=20)),
  alt.Y("Miles_per_Gallon:Q",scale=alt.Scale(zero=False,padding=20)),
  size="Acceleration:Q"
  )

        综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128682.html

相关文章

  • 四足机器狗——12自由度舵机狗DIY(一)

    摘要:四足仿生机器人具有高机动性,负载能力和适应能力强,可运用于物资运输抢险救援等方面,具有广阔前景。由于制作电机狗需要高昂的成本。自主设计制造一款舵机狗来学习研究四足机器狗的步态算法是一件性价比极高且很有意义的一件事。 文章目录 前言 一、初步了解四足结构 1.1.2串联机构 1.2 ...

    不知名网友 评论0 收藏0
  • FreecadPython脚本

    摘要:在控制台中,您可以逐个编写命令,这些命令在按下时执行宏可以包含由多行组成的更复杂的脚本,只有在执行宏时才会执行。更好的是,您可以在中设置一个选项,以在控制台中显示脚本命令。 Python是一种编程语言,使用起来非常简单,学习起来非常快。它是开源的,多平台的,可以单独用于各种各样的事情,从简单的shell脚本编程到非常复杂的程序。但其最广泛的用途之一是作为脚本语言,因为它很容易嵌入到其他...

    zengdongbao 评论0 收藏0
  • 用 Matplotlib 库生成动画图表

    摘要:相对于静态图表,人类总是容易被动画和交互式图表所吸引。可以使用轻松生成图表直方图功率谱,条形图,错误图表,散点图等。然而,也有一些方面落后于同类的库。动画使用一组固定的对象。稍后将用数据对行对象进行填充。现在用将它们转换为动画。 翻译:疯狂的技术宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...

    call_me_R 评论0 收藏0
  • 用 Matplotlib 库生成动画图表

    摘要:相对于静态图表,人类总是容易被动画和交互式图表所吸引。可以使用轻松生成图表直方图功率谱,条形图,错误图表,散点图等。然而,也有一些方面落后于同类的库。动画使用一组固定的对象。稍后将用数据对行对象进行填充。现在用将它们转换为动画。 翻译:疯狂的技术宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...

    不知名网友 评论0 收藏0
  • 首次公开,整理12年积累博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<