pk10免费滚雪球计划 北京pk赛车人工计划 一分钟赛车是官方的吗 北京pk10数学天才揭秘 北京pk10网赌害人案例 北京pk10保罗软件计划 pk10模式长期稳赚6码 北京pk10公式大全 网络赛车赌博是骗局吗 北京pk赛车是不是真的 北京pk10八码公式教程 一无所有怎么白手起家 北京pk10正规平台平台 北京pk赛车历史开结果 pk10买8码杀2码好方法 北京pk10冠亚和值漏洞 正规北京pk赛车彩票 玩北京pk10输钱经历 北京pk10专家在线计划 北京pk赛车正规吗 北京pk10为什么不禁止 北京pk拾赛车有人赢吗 北京pk10代理违法吗 pk10挂机模式真的稳赢 pk10冠军固定公式软件 北京pk10如何看大小 北京pk哈赛车官方网站 北京pk10六码公式教程 pk10去一尾算法举例 北京pk10冠军5码方法
阅读更多

1顶
0踩

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

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

散点图

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


现在开始讨论代码。我们首先用别名 “plt” 导入 Matplotlib 的 pyplot 。要创建一个新的点阵图,我们可调用 plt.subplots() 。我们将 x 轴和 y 轴数据传递给该函数,然后将这些数据传递给 ax.scatter() 以绘制散点图。我们还可以设置点的大小、点颜色和 alpha ?#35813;鞫取?#20320;甚至可以设置 Y 轴为对数刻?#21462;?#26631;题和坐标轴上的标签可以专门为该图设置。这是一个易于使用的函数,可用于从头到尾创建散点图!
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)

折线图

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

这里是折线图的代码。它和上面的散点图很相似,只是在一些变?#21487;嫌行?#30340;变化。
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 做的直方图。我们可以清楚地看到朝中间聚集,并且能看到中位数是多少。我们也可以看到它呈正态分布。使用直方图真得能清晰地呈现出各个组的频率之间的相对差别。组的使用(离散化)真正地帮助我们看到了“更加宏观的图形”,然而当我们使用所有没有离散组的数据点时,将对可视化可能造成许多干扰,使得看清真正发生了什么变得困?#36873;?

下面是在 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)

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

对于重叠的直方图,需要设置一些东西。首先,我们设置可同时容纳不同分布的横轴?#27573;А?#26681;据这个?#27573;?#21644;期望的组数,我们可以真正地计算出每个组的宽?#21462;?#26368;后,我们在同一张图上绘制两个直方图,其中有一个稍微更?#35813;?#19968;些。
# 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)的分类数据可视化的时候,柱状图是最?#34892;?#30340;。如果我们有太多的分类,那么这些柱状图就会非常杂乱,很难理解。柱状图对分类数据很好,因为你可以很容易地看到基于柱的类别之间的区别(比如大小);分类也很容易划分和用颜色进行编码。我们将会看到三种不同类型的柱状图:常规的,分组的,堆叠的。在我们进行的过程中,请查看图形下面的代码。

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

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

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



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')

箱形图

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

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

由于每个组/变量的框图都是分别绘制的,所以很容易设置。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 个快速简单的数据可视化方法。将相关事务抽象成函数总是会使你的代码更易于阅读和使用!我希望你?#19981;?#36825;篇文章,并且学到了一些新的有用的技巧。

英文原文: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数据可视化

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

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

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

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

    编译:?oschina ?英文:towardsdatascience数据可视化是数据科学家工作中的重要组成部分。在项目的早期阶段,你通常会进行探索性数据分析(Explor...

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

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

  • 数据可视化』基于Python数据可视化工具

    如何做Python数据可视化? pyecharts 是一个用于生成 Echarts 图表的类库。 Echarts 是百度开源的一个数据可视化 JS 库。主要用于数据可视化。 一、安装 pyecharts 兼容 Python2 和 Python3。目前版本为 0.1.4 pip install pyecharts 二、入门 首先开始来绘制你的第一个图表

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

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

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

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

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

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

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

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

  • 大屏数据可视化

    大屏数据可视化案例;大数据可视化案例;

  • python3之数据可视化

  • https://blog.csdn.net/feng_jlin/article/details/82770659

    主要内容: 格?#38454;?#25442; 缺失数据 异常数据 数据标准化操作 格?#38454;?#25442; 如Python记录时间的方式,不能够直接实现减运算,就需要进行转换 pandas.to_datetime 缺失数据 忽?#21248;?#22833;数据 直接标记 利用平均值、最常出?#31181;?#36827;行填充 异常数据 处理方式可类比缺失数据 标准化 常出现在用户自主输入的一些属性上,需要你进行标准化的处理,本节课程暂不涉及 数据清理示例:A...

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

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

  • Python的几种实现方式

    Python自身作为一门编程语言,它有多种实现。这里的实现指的是符合Python语言规范的Python解释程序以及标准库?#21462;?#36825;些实现虽然实现的是同一种语言,但是彼此之间,特别是与CPython之间还是?#34892;?#24046;别的。 下面分别列出几个主要的实现。 1.CPython:这是Python的官方版本,使用C语言实现使用最为广泛,新的语言特性一般也最先出现在这里。 CPython实现会将源

  • Python数据可视化-seabornIris鸢?#19981;?#25968;据

  • 数据可视化常用的5种方式及案例分析

    借助于图形化的手段,清晰、快捷?#34892;?#30340;传达与沟通信息。从用户的角度,数据可视化可以让用户快速抓住要点信息,让关键的数据点从人类的眼睛快速通往心灵深处。 数据可视化一般会具备以下几个特点:准确性、创新性 和 简洁性。

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

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

  • 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 数据可视化——Matplotlib

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

  • 从1维到6维,一文读懂多维数据可视化策略

    本文经机器之心(微信公众?#29275;篴lmosthuman2014)授权转载,禁止二次转载选自towardsdatascience作者:Dipanjan Sarkar参与:Jane W、乾树、黄小天数据聚合、汇总和可视化是支撑数据分析领域的三大支柱。长久以来,数据可视化都是一个强有力的工具,被?#21040;?#24191;泛使用,却受限于 2 维。在本文中,作者将探索一些?#34892;?#30340;多维数据可视化策略(?#27573;?#20174; 1 维到 6 维)。01

Global site tag (gtag.js) - Google Analytics 玩北京pk10久玩必输