iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎样实现数据可视化
  • 466
分享到

Python中怎样实现数据可视化

2023-06-17 02:06:39 466人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇文章为大家展示了python中怎样实现数据可视化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Matplotlib 是一个流行的 Python 库,可以用来很简单地创建数据可视化方案。但每次创建

本篇文章为大家展示了python中怎样实现数据可视化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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

Python中怎样实现数据可视化

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

Python中怎样实现数据可视化

Python中怎样实现数据可视化

现在开始讨论代码。我们首先用别名 “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)

折线图

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

Python中怎样实现数据可视化

这里是折线图的代码。它和上面的散点图很相似,只是在一些变量上有小的变化。

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

Python中怎样实现数据可视化

下面是在 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 ,使得我们可以看到他背后的图形。这样我们就可以直接在同一张图表里看到两个分布。

Python中怎样实现数据可视化

对于重叠的直方图,需要设置一些东西。首先,我们设置可同时容纳不同分布的横轴范围。根据这个范围和期望的组数,我们可以真正地计算出每个组的宽度。***,我们在同一张图上绘制两个直方图,其中有一个稍微更透明一些。

# 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 轴上的杆高度。误差条是一条以每条柱为中心的额外的线,可以画出标准偏差。

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

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

Python中怎样实现数据可视化

Python中怎样实现数据可视化

Python中怎样实现数据可视化

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 中的一个列/向量。我们所要设置的就是箱体的美观。

Python中怎样实现数据可视化 

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)

上述内容就是Python中怎样实现数据可视化,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网Python频道。

--结束END--

本文标题: Python中怎样实现数据可视化

本文链接: https://www.lsjlt.com/news/286907.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中怎样实现数据可视化
    本篇文章为大家展示了Python中怎样实现数据可视化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Matplotlib 是一个流行的 Python 库,可以用来很简单地创建数据可视化方案。但每次创建...
    99+
    2023-06-17
  • Python中怎么实现数据可视化
    这期内容当中小编将会给大家带来有关Python中怎么实现数据可视化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.成品图这个是监控服务器网速的***成果,显示的是下载与上传的网速,单位为M。爬虫的原理都...
    99+
    2023-06-17
  • Python中如何实现数据可视化
    今天就跟大家聊聊有关Python中如何实现数据可视化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。热力图热力图(Heat Map)是数据的一种矩阵表示方法,其中每个矩阵元素的值通过一...
    99+
    2023-06-16
  • python flask数据可视化怎么实现
    这篇文章主要介绍了python flask数据可视化怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python flask数据可视化怎么实现文章都会有所收获,下面我们一...
    99+
    2024-04-02
  • Python中怎么利用seaborn实现数据可视化
    本篇文章为大家展示了Python中怎么利用seaborn实现数据可视化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。本文目标图表是这样:2个系列。每个系列找出最小最大的柱子,标记成不同的颜色本文所需...
    99+
    2023-06-16
  • Echarts中怎么实现数据可视化
    这期内容当中小编将会给大家带来有关Echarts中怎么实现数据可视化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Echarts这个方案从我接触到做出一个还算不错的图,也就不过几个小时的时间,其中至少60...
    99+
    2023-06-04
  • 怎么用Python echarts实现数据可视化
    本篇内容主要讲解“怎么用Python echarts实现数据可视化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python echarts实现数据可视化”吧!1.概述...
    99+
    2023-06-29
  • Python怎么实现交通数据可视化
    这篇文章主要讲解了“Python怎么实现交通数据可视化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现交通数据可视化”吧!1、TransBigData简介TransBigD...
    99+
    2023-07-06
  • Python数据可视化中的环形图是怎样的
    今天给大家介绍一下Python数据可视化中的环形图是怎样的。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。1.引言环形图(圆环)在功能上与饼图相同,整个环被分成...
    99+
    2023-06-26
  • pyecharts实现数据可视化
    目录1.概述2.安装3.数据可视化代码3.1 柱状图3.2 折线图3.3 饼图1.概述 pyecharts 是百度开源的,适用于数据可视化的工具,配置灵活,展示图表相对美观,顺滑。 ...
    99+
    2024-04-02
  • Python 数据可视化
    Python 数据可视化 Python提供了多个用于数据可视化的工具和库。其中最常用的包括: 1. Matplotlib:Matplotlib 是一个用于绘制二维图形的 Python 库。它提供了广泛的绘图选项,可以帮助您创建线图、散点图...
    99+
    2023-09-17
    python 数据分析 matplotlib
  • python数据可视化
    1、安装matplotlib 在 cmd 中键入 python -m pip install matplotlib,系统将自动安装,需要等一段时间,待完成后 python -m pip list ,显示 敲黑板划重点:一定通过 cdm ...
    99+
    2023-01-30
    数据 python
  • Python中怎么使用使用Plotly实现数据可视化
    这期内容当中小编将会给大家带来有关Python中怎么使用使用Plotly实现数据可视化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 Plotly 是一个数据绘图库,具有整洁的接口,它旨在允许你...
    99+
    2023-06-16
  • python用pyecharts实现地图数据可视化
    目录一、全国各省单年GDP的可视化二、全国各省多年GDP的可视化有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较。但直方图在视觉上并不能很好突出地区间的...
    99+
    2024-04-02
  • Python疫情数据可视化分析怎么实现
    这篇文章主要讲解了“Python疫情数据可视化分析怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python疫情数据可视化分析怎么实现”吧!前言本项目主要通过python的matpl...
    99+
    2023-07-02
  • Python echarts实现数据可视化实例详解
    目录1.概述2.安装3.数据可视化代码3.1 柱状图3.2 折线图3.3 饼图总结1.概述 pyecharts 是百度开源的,适用于数据可视化的工具,配置灵活,展示图表相对美观,顺滑...
    99+
    2024-04-02
  • 酷炫,Python实现交通数据可视化!
    1、TransBigData简介TransBigData为处理常见的交通时空大数据(如出租车GPS数据、共享单车数据和公交车GPS数据等)提供了快速而简洁的方法。TransBigData为交通时空大数据分析的各个阶段提供了多种处理方法,代码...
    99+
    2023-05-14
    Python 数据可视化
  • Python实现数据可视化案例分析
    目录1. 问题描述2. 实验环境3. 实验步骤及结果1. 问题描述 对右图进行修改: 请更换图形的风格请将 x 轴的数据改为-10 到 10请自行构造一个 y 值的函数将直方图上的数...
    99+
    2024-04-02
  • 怎么实现数据库的可视化
    要实现数据库的可视化,可以使用数据库管理工具或者图形化界面来操作和管理数据库。以下是一些常用的方法:1. 使用数据库管理工具:常见的...
    99+
    2023-08-31
    数据库
  • Python中不同图表的数据可视化的实现
    目录 1.直方图2. 柱形图3. 箱线图4、饼图5、散点图数据可视化是以图形格式呈现数据。它通过以简单易懂的格式汇总和呈现大量数据,帮助人们理解数据的重要性,并有助于清晰有...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作