暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

数艺学苑 2020-10-16
1061





点击上方“蓝字”,关注我们,会发现更多精彩。



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


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


在本文中我们将介绍一些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 np
    import matplotlib.pyplot as plt
    import 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 sns
      import 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条数据
              # Scatter
              line1 = 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 px
                import plotly.offline as of
                gapminder = 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 gp
                  import pandas as pd
                  meat = gp.meat
                  p=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/






                  本文作者:


                  指导老师:






                  扫码二维码
                  关注我们
                  了解更多精彩

                  ‍‍‍‍‍‍‍‍‍欢迎关注

                    微信公众号  

                  “沈浩老师”‍‍‍‍‍‍‍‍‍






                  文章转载自数艺学苑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论