• 走进墨玉—天山网专题报道 2019-04-19
  • 木垒积极打造农家生活体验区 2019-04-03
  • 安徽省高校公共体艺教育推行俱乐部制 2019-03-26
  • 女性之声——全国妇联 2019-03-23
  • 险!小孩头卡防盗栏 民警爬窗外托举 成功解救 2019-03-23
  • 中国侨联直属机关党委举办党务干部培训班 2019-03-21
  • 雷佳音曾担任佟丽娅婚礼司仪 原因竟是不用随红包 2019-03-17
  • 电商扶贫,山“疙瘩”成“金蛋蛋” 2019-03-17
  • 湖州师院志愿者:携手弱势群体共谱青春乐章 2019-03-14
  • 阳泉计划今年在全省率先整体脱贫 2019-03-13
  • 货币政策取向仍以国内为主 2019-03-13
  • 中华人民共和国防震减灾法 2019-02-22
  • 的神话少了没人相信我,继续,希望你造出更多的神话来 2019-02-22
  • 七彩人生、林氏木业等品牌产品抽检不合格 2019-02-06
  • 阳泉消防开展冬训“集团化”练兵 2019-02-06
  • 阅读更多

    1顶
    0踩

    编程语言
    数据可视化是数据科学家工作中的重要组成部分。在项目的早期阶段,你通?;峤刑剿餍允莘治觯‥xploratory Data Analysis,EDA)以获取对数据的一些理解。创建可视化方法确实有助于使事情变得更加清晰易懂,特别是对于大型、高维数据集。在项目结束时,以清晰、简洁和引人注目的方式展现最终结果是非常重要的,因为你的受众往往是非技术型客户,只有这样他们才可以理解。

    Matplotlib 是一个流行的 Python 库,可以用来很简单地创建数据可视化方案。但每次创建新项目时,设置数据、参数、图形和排版都会变得非常繁琐和麻烦。在这篇博文中,我们将着眼于 5 个数据可视化方法,并使用 Python Matplotlib 为他们编写一些快速简单的函数。与此同时,这里有一个很棒的图表,可用于在工作中选择正确的可视化方法!

    散点图

    散点图非常适合展示两个变量之间的关系,因为你可以直接看到数据的原始分布。 如下面第一张图所示的,你还可以通过对组进行简单地颜色编码来查看不同组数据的关系。想要可视化三个变量之间的关系? 没问题! 仅需使用另一个参数(如点大?。┚涂梢远缘谌霰淞拷斜嗦?,如下面的第二张图所示。


    现在开始讨论代码。我们首先用别名 “plt” 导入 Matplotlib 的 pyplot 。要创建一个新的点阵图,我们可调用 plt.subplots() 。我们将 x 轴和 y 轴数据传递给该函数,然后将这些数据传递给 ax.scatter() 以绘制散点图。我们还可以设置点的大小、点颜色和 alpha 透明度。你甚至可以设置 Y 轴为对数刻度。标题和坐标轴上的标签可以专门为该图设置。这是一个易于使用的函数,可用于从头到尾创建散点图!
    import matplotlib.pyplot as pltimport numpy as npdef scatterplot(x_data, y_data, x_label="", y_label="", title="", color = "r", yscale_log=False):
    
        # Create the plot object
        _, ax = plt.subplots()    # Plot the data, set the size (s), color and transparency (alpha)
        # of the points
        ax.scatter(x_data, y_data, s = 10, color = color, alpha = 0.75)    if yscale_log == True:
            ax.set_yscale('log')    # Label the axes and provide a title
        ax.set_title(title)
        ax.set_xlabel(x_label)
        ax.set_ylabel(y_label)

    折线图

    当你可以看到一个变量随着另一个变量明显变化的时候,比如说它们有一个大的协方差,那最好使用折线图。让我们看一下下面这张图。我们可以清晰地看到对于所有的主线随着时间都有大量的变化。使用散点绘制这些将会极其混乱,难以真正明白和看到发生了什么。折线图对于这种情况则非常好,因为它们基本上提供给我们两个变量(百分比和时间)的协方差的快速总结。另外,我们也可以通过彩色编码进行分组。

    这里是折线图的代码。它和上面的散点图很相似,只是在一些变量上有小的变化。
    def lineplot(x_data, y_data, x_label="", y_label="", title=""):
        # Create the plot object
        _, ax = plt.subplots()    # Plot the best fit line, set the linewidth (lw), color and
        # transparency (alpha) of the line
        ax.plot(x_data, y_data, lw = 2, color = '#539caf', alpha = 1)    # Label the axes and provide a title
        ax.set_title(title)
        ax.set_xlabel(x_label)
        ax.set_ylabel(y_label)

    直方图

    直方图对于查看(或真正地探索)数据点的分布是很有用的。查看下面我们以频率和 IQ 做的直方图。我们可以清楚地看到朝中间聚集,并且能看到中位数是多少。我们也可以看到它呈正态分布。使用直方图真得能清晰地呈现出各个组的频率之间的相对差别。组的使用(离散化)真正地帮助我们看到了“更加宏观的图形”,然而当我们使用所有没有离散组的数据点时,将对可视化可能造成许多干扰,使得看清真正发生了什么变得困难。

    下面是在 Matplotlib 中的直方图代码。有两个参数需要注意一下:首先,参数 n_bins 控制我们想要在直方图中有多少个离散的组。更多的组将给我们提供更加完善的信息,但是也许也会引进干扰,使得我们远离全局;另一方面,较少的组给我们一种更多的是“鸟瞰图”和没有更多细节的全局图。其次,参数 cumulative 是一个布尔值,允许我们选择直方图是否为累加的,基本上就是选择是 PDF(Probability Density Function,概率密度函数)还是 CDF(Cumulative Density Function,累积密度函数)。
    def histogram(data, n_bins, cumulative=False, x_label = "", y_label = "", title = ""):
        _, ax = plt.subplots()
        ax.hist(data, n_bins = n_bins, cumulative = cumulative, color = '#539caf')
        ax.set_ylabel(y_label)
        ax.set_xlabel(x_label)
        ax.set_title(title)

    想象一下我们想要比较数据中两个变量的分布。有人可能会想你必须制作两张直方图,并且把它们并排放在一起进行比较。然而,实际上有一种更好的办法:我们可以使用不同的透明度对直方图进行叠加覆盖??聪峦?,均匀分布的透明度设置为 0.5 ,使得我们可以看到他背后的图形。这样我们就可以直接在同一张图表里看到两个分布。

    对于重叠的直方图,需要设置一些东西。首先,我们设置可同时容纳不同分布的横轴范围。根据这个范围和期望的组数,我们可以真正地计算出每个组的宽度。最后,我们在同一张图上绘制两个直方图,其中有一个稍微更透明一些。
    # Overlay 2 histograms to compare themdef overlaid_histogram(data1, data2, n_bins = 0, data1_name="", data1_color="#539caf", data2_name="", data2_color="#7663b0", x_label="", y_label="", title=""):
        # Set the bounds for the bins so that the two distributions are fairly compared
        max_nbins = 10
        data_range = [min(min(data1), min(data2)), max(max(data1), max(data2))]
        binwidth = (data_range[1] - data_range[0]) / max_nbins    if n_bins == 0
        	bins = np.arange(data_range[0], data_range[1] + binwidth, binwidth)    else: 
        	bins = n_bins    # Create the plot
        _, ax = plt.subplots()
        ax.hist(data1, bins = bins, color = data1_color, alpha = 1, label = data1_name)
        ax.hist(data2, bins = bins, color = data2_color, alpha = 0.75, label = data2_name)
        ax.set_ylabel(y_label)
        ax.set_xlabel(x_label)
        ax.set_title(title)
        ax.legend(loc = 'best')

    柱状图

    当你试图将类别很少(可能小于10)的分类数据可视化的时候,柱状图是最有效的。如果我们有太多的分类,那么这些柱状图就会非常杂乱,很难理解。柱状图对分类数据很好,因为你可以很容易地看到基于柱的类别之间的区别(比如大小);分类也很容易划分和用颜色进行编码。我们将会看到三种不同类型的柱状图:常规的,分组的,堆叠的。在我们进行的过程中,请查看图形下面的代码。

    常规的柱状图如下面的图1。在 barplot() 函数中,xdata 表示 x 轴上的标记,ydata 表示 y 轴上的杆高度。误差条是一条以每条柱为中心的额外的线,可以画出标准偏差。

    分组的柱状图让我们可以比较多个分类变量??纯聪旅娴耐?。我们比较的第一个变量是不同组的分数是如何变化的(组是G1,G2,……等等)。我们也在比较性别本身和颜色代码??匆幌麓?,y_data_list 变量实际上是一个 y 元素为列表的列表,其中每个子列表代表一个不同的组。然后我们对每个组进行循环,对于每一个组,我们在 x 轴上画出每一个标记;每个组都用彩色进行编码。

    堆叠柱状图可以很好地观察不同变量的分类。在图3的堆叠柱状图中,我们比较了每天的服务器负载。通过颜色编码后的堆栈图,我们可以很容易地看到和理解哪些服务器每天工作最多,以及与其他服务器进行比较负载情况如何。此代码的代码与分组的条形图相同。我们循环遍历每一组,但这次我们把新柱放在旧柱上,而不是放在它们的旁边。



    def barplot(x_data, y_data, error_data, x_label="", y_label="", title=""):
        _, ax = plt.subplots()
        # Draw bars, position them in the center of the tick mark on the x-axis
        ax.bar(x_data, y_data, color = '#539caf', align = 'center')
        # Draw error bars to show standard deviation, set ls to 'none'
        # to remove line between points
        ax.errorbar(x_data, y_data, yerr = error_data, color = '#297083', ls = 'none', lw = 2, capthick = 2)
        ax.set_ylabel(y_label)
        ax.set_xlabel(x_label)
        ax.set_title(title)
    
    
    
    def stackedbarplot(x_data, y_data_list, colors, y_data_names="", x_label="", y_label="", title=""):
        _, ax = plt.subplots()
        # Draw bars, one category at a time
        for i in range(0, len(y_data_list)):
            if i == 0:
                ax.bar(x_data, y_data_list[i], color = colors[i], align = 'center', label = y_data_names[i])
            else:
                # For each category after the first, the bottom of the
                # bar will be the top of the last category
                ax.bar(x_data, y_data_list[i], color = colors[i], bottom = y_data_list[i - 1], align = 'center', label = y_data_names[i])
        ax.set_ylabel(y_label)
        ax.set_xlabel(x_label)
        ax.set_title(title)
        ax.legend(loc = 'upper right')
    
    
    
    def groupedbarplot(x_data, y_data_list, colors, y_data_names="", x_label="", y_label="", title=""):
        _, ax = plt.subplots()
        # Total width for all bars at one x location
        total_width = 0.8
        # Width of each individual bar
        ind_width = total_width / len(y_data_list)
        # This centers each cluster of bars about the x tick mark
        alteration = np.arange(-(total_width/2), total_width/2, ind_width)
    
        # Draw bars, one category at a time
        for i in range(0, len(y_data_list)):
            # Move the bar to the right on the x-axis so it doesn't
            # overlap with previously drawn ones
            ax.bar(x_data + alteration[i], y_data_list[i], color = colors[i], label = y_data_names[i], width = ind_width)
        ax.set_ylabel(y_label)
        ax.set_xlabel(x_label)
        ax.set_title(title)
        ax.legend(loc = 'upper right')

    箱形图

    我们之前看了直方图,它很好地可视化了变量的分布。但是如果我们需要更多的信息呢?也许我们想要更清晰的看到标准偏差?也许中值与均值有很大不同,我们有很多离群值?如果有这样的偏移和许多值都集中在一边呢?

    这就是箱形图所适合干的事情了。箱形图给我们提供了上面所有的信息。实线框的底部和顶部总是第一个和第三个四分位(比如 25% 和 75% 的数据),箱体中的横线总是第二个四分位(中位数)。像胡须一样的线(虚线和结尾的条线)从这个箱体伸出,显示数据的范围。

    由于每个组/变量的框图都是分别绘制的,所以很容易设置。xdata 是一个组/变量的列表。Matplotlib 库的 boxplot() 函数为 ydata 中的每一列或每一个向量绘制一个箱体。因此,xdata 中的每个值对应于 ydata 中的一个列/向量。我们所要设置的就是箱体的美观。

    def boxplot(x_data, y_data, base_color="#539caf", median_color="#297083", x_label="", y_label="", title=""):
        _, ax = plt.subplots()
    
        # Draw boxplots, specifying desired style
        ax.boxplot(y_data
                   # patch_artist must be True to control box fill
                   , patch_artist = True
                   # Properties of median line
                   , medianprops = {'color': median_color}
                   # Properties of box
                   , boxprops = {'color': base_color, 'facecolor': base_color}
                   # Properties of whiskers
                   , whiskerprops = {'color': base_color}
                   # Properties of whisker caps
                   , capprops = {'color': base_color})
    
        # By default, the tick label starts at 1 and increments by 1 for
        # each box drawn. This sets the labels to the ones we want
        ax.set_xticklabels(x_data)
        ax.set_ylabel(y_label)
        ax.set_xlabel(x_label)
        ax.set_title(title)

    结语

    使用 Matplotlib 有 5 个快速简单的数据可视化方法。将相关事务抽象成函数总是会使你的代码更易于阅读和使用!我希望你喜欢这篇文章,并且学到了一些新的有用的技巧。

    英文原文:5 Quick and Easy Data Visualizations in Python with Code
    • 大小: 251.3 KB
    • 大小: 60.9 KB
    • 大小: 87.3 KB
    • 大小: 199.8 KB
    • 大小: 137.6 KB
    • 大小: 34.5 KB
    • 大小: 14.4 KB
    • 大小: 16.2 KB
    • 大小: 18.7 KB
    • 大小: 16.8 KB
    来自: oschina
    1
    0
    评论 共 0 条 请登录后发表评论

    发表评论

    您还没有登录,请您登录后再发表评论

    相关推荐

    • 五段代码,让你轻松实现Python数据可视化

      数据可视化是数据科学家工作的一项主要任务。在项目早期阶段,通?;峤刑剿餍允莘治觯‥DA)以获取对数据的理解和洞察,尤其对于大型高维的数据集,数据可视化着实有助于使数据关系更清晰易懂。散点图折线图代码与散点图类似,只是一些微小的参数改动。直方图关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货每天晚上20:00...

    • 有这5小段代码在手,轻松实现数据可视化Python+Matplotlib)

      本文要讲的是Matplotlib,一个强大的Python可视化库。一共5小段代码,轻松实现散点图、折线图、直方图、柱状图、箱线图,每段代码只有10行,也是再简单不过了吧!...

    • 技术▍5 种使用 Python 代码轻松实现数据可视化

      编译:?oschina ?英文:towardsdatascience数据可视化是数据科学家工作中的重要组成部分。在项目的早期阶段,你通?;峤刑剿餍允莘治觯‥xplor...

    • 想要玩转数据可视化?必看的33种经典图表类型总结?。?!

      导读:随着时代的发展,越来越多的数据量堆积,然而这些密密麻麻的数据的可读性较差并且毫无重点,而数据可视化更加直观有意义,更能帮助数据更易被人们理解和接受。 因此运用恰当的图表实现数据可视化非常重要,本文归结图表的特点,汇总出一张思维导图,帮助大家更快地选择展现数据特点的图表类型。 ? ▲图表类型-思维指南(点击可放大) ? 在这里我还是要推荐下我自己建的大数据学习交流裙:8051...

    • Python 代码轻松实现数据可视化的5 种使用方法

      散点图 散点图非常适合展示两个变量之间的关系,因为你可以直接看到数据的原始分布。 如下面第一张图所示的,你还可以通过对组进行简单地颜色编码来查看不同组数据的关系。想要可视化三个变量之间的关系? 没问题! 仅需使用另一个参数(如点大?。┚涂梢远缘谌霰淞拷斜嗦?,如下面的第二张图所示。 现在开始讨论代码。我们首先用别名 “plt” 导入 Matplotlib 的 pyplot 。要创建一个新的点...

    • 5 种使用 Python 代码轻松实现数据可视化方法!超级实用!

      数据可视化是数据科学家工作中的重要组成部分。在项目的早期阶段,你通?;峤刑剿餍允莘治觯‥xploratory Data Analysis,EDA)以获取对数据的一些理解。创建可视化方法确实有助于使事情变得更加清晰易懂,特别是对于大型、高维数据集。在项目结束时,以清晰、简洁和引人注目的方式展现最终结果是非常重要的,因为你的受众往往是非技术型客户,只有这样他们才可以理解。 Matplotlib ...

    • Python代码轻松实现数据可视化的5 种使用方法

      散点图 散点图非常适合展示两个变量之间的关系,因为你可以直接看到数据的原始分布。 如下面第一张图所示的,你还可以通过对组进行简单地颜色编码来查看不同组数据的关系。想要可视化三个变量之间的关系? 没问题! 仅需使用另一个参数(如点大?。┚涂梢远缘谌霰淞拷斜嗦?,如下面的第二张图所示。 现在开始讨论代码。我们首先用别名 “plt” 导入 Matplotlib 的 pyplot 。要...

    • 基于HTML5的数据可视化方法有哪些

      现在在大数据的带领下,数据可视化越来越突出,能够清楚的分析出自己想要的数据,这也是我们现在最求的数据可视化方法,那么实现HTML5的数据可视化方法有哪些?这都是我们值得研究的东西,数据可以给我们带来敏感的市场未来发展,同时也能够实时分别不同数据效果。

    • 数据可视化前后端完整代码

      数据可视化前后端完整代码,链接数据库,将数据库中的数据取出,通过数据处理,在前端web网页中展示。

    • 独家 | 教你实现数据集多维可视化(附代码

      翻译:张媛校对:卢苗苗本文共8269字,建议阅读10分钟。用代码将你的数据集进行多维可视化!介绍描述性分析是与数据科学或特定研究相关的任何分析生命周期中的核心组成部分之一。数据聚合,汇总与可视化是支撑数据分析这一领域的主要支柱。从传统商业智能时代开始,即使在如今的人工智能时代,数据可视化一直是一种强大的工具,由于其能够有效地抽象出正确的信息,清晰直观地理解和解释数据结果而被很多组织广泛地采用。然而

    • 使用 Python 实现数据可视化(完整代码

      当我们能够充分理解数据,并能够轻松向他人解释数据时,数据才有价值;我们的读者可以通过可视化互动或其他数据使用方式来探寻一个故事的背后发生了什么,因此,数据可视化至关重要。数据可视化的目的其实就是直观地展现数据,例如让花费数小时甚至更久才能归纳的数据量,转化成一眼就能读懂的指标;通过加减乘除、各类公式权衡计算得到的两组数据差异,在图中通过颜色差异、长短大小即能形成对比。在本文中,我们将着眼于 5 个

    • 12种降维方法终极指南(含Python代码

      你遇到过特征超过1000个的数据集吗?超过5万个的呢?我遇到过。降维是一个非常具有挑战性的任务,尤其是当你不知道该从哪里开始的时候。拥有这么多变量既是一个恩惠——数据量越大,分析结果越可信;也是一种诅咒——你真的会感到一片茫然,无从下手。 面对这么多特征,在微观层面分析每个变量显然不可行,因为这至少要几天甚至几个月,而这背后的时间成本是难以估计的。为此,我们需要一种更好的方法来处理高维数据,比如...

    • https://download.csdn.net/download/kuangkzh/9808816

    • 数据预处理——数据可视化的常用方法

      基于像素的可视化技术:每一维度创建一个窗口,记录的m个维值映射到m个像素,像素颜色的深浅代表着对应的值。缺点在于对于我们理解多维空间的数据分布帮助不大。 ? ? ? ?从该图中,可以发现:income与credit_limit为一个正相关,而与age没有半毛钱的关系。 ? ? ? ?若想通过二维图形表示多维的数据,可以考虑使用空间填充曲线,如希尔伯特曲线、格雷码、z-曲线。? ? ? ? ...

    • PYTHON数据可视化编程实战.pdf

      PYTHON数据可视化编程实战,全文高清pdf版本 Python Data Visualization Cookbook.pdf 人民邮电出版社 掌握和使用正确的数据可视化方法

    • Python数据可视化编程实战》

      Python数据可视化编程实战》? 绘制并定制化图表 3.1?柱状图、线形图、堆积柱状图 from matplotlib.pyplot import * ? x = [1,2,3,4,5,6] y = [3,4,6,7,3,2] ? #create new figure figure() ? #线 subplo...

    • PYTHON数据可视化编程实战代码及数据

      Python数据可视化编程实战》是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法创建美观的数据可视化效果。 全书共8章,分别介绍了准备工作环境、了解数据、绘制并定制化图表、学习更多图表和定制化、创建3D可视化图表、用图像和地图绘制图表、使用正确的图表理解数据以及更多matplotlib知识。 《Python数据可视化编程实战》适合那些对Python编程有一定基础的开发人员,可以帮助读者从头开始了解数据、数据格式、数据可视化,并学会使用Python可视化数据。

    • Python 数据可视化——Matplotlib

      原始数据展示(这张表记录了某个公园的火灾情况,X和Y代表的是坐标位置,area代表的是烧毁面积)import pandas forest_fires = pandas.read_csv('forest_fires.csv') print(forest_fires.head(5))?在使用matplotlib库的时候,都会默认地缩写为pltimport matplotlib.pyplot as ...

    • Python数据可视化代码记录

      最近学习Python,记录作业代码,以便后续查阅。1、漲跌幅为今日Adj Close-昨日AdjClose)/昨日Adj Close,日期為x軸,漲跌幅為y軸,畫出折線圖import numpy as np import pandas as pd import matplotlib.dates as mdates #處理日期 import matplotlib.pyplot as plt #...

    • Python Data Visulation Cookbook

      Python 数据可视化教程, 使用matplotlib, NumPy, 和SciPy 等实现数据可视化,英文版,PDF格式,欢迎下载...

    Global site tag (gtag.js) - Google Analytics
  • 走进墨玉—天山网专题报道 2019-04-19
  • 木垒积极打造农家生活体验区 2019-04-03
  • 安徽省高校公共体艺教育推行俱乐部制 2019-03-26
  • 女性之声——全国妇联 2019-03-23
  • 险!小孩头卡防盗栏 民警爬窗外托举 成功解救 2019-03-23
  • 中国侨联直属机关党委举办党务干部培训班 2019-03-21
  • 雷佳音曾担任佟丽娅婚礼司仪 原因竟是不用随红包 2019-03-17
  • 电商扶贫,山“疙瘩”成“金蛋蛋” 2019-03-17
  • 湖州师院志愿者:携手弱势群体共谱青春乐章 2019-03-14
  • 阳泉计划今年在全省率先整体脱贫 2019-03-13
  • 货币政策取向仍以国内为主 2019-03-13
  • 中华人民共和国防震减灾法 2019-02-22
  • 的神话少了没人相信我,继续,希望你造出更多的神话来 2019-02-22
  • 七彩人生、林氏木业等品牌产品抽检不合格 2019-02-06
  • 阳泉消防开展冬训“集团化”练兵 2019-02-06
  • 排列3杀号定胆 福彩双色球开奖结果 白小姐印刷图库 天津快乐十分开奖结果 山东群英会开奖走势图 七乐彩选号大师 竞彩篮球胜分差规则 福彩3d预测分析 北京赛车开奖 新疆时时彩开奖视频 胜负彩14157期国内部分专业媒体复式推荐总汇 新时时彩软件免费版 14场胜负开奖结果 澳洲幸运10什么彩票 排列五开奖号码 北京赛车和值公式