交互式的数据可视化图表是 New IT 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是,这种数据展示方式很不直观,无法让用户一下子就看出数据分析结果所要反应出的信息,由此就有了数据可视化技术的研究和应用来解决这个问题。

目前实现交互式数据可视化技术已经很成熟,各种类型地数据可视化图表都可以使用技术手段实现出来,包括最简单的 Excel 就可以制作各种可视化数据分析报表,而在 WEB 上也有各种技术可是实现相似功能。在学习和研究 Python 的过程中,我发现了很多类库可以很简单地就能实现交互式的数据可视化的业务需求,包括 pyecharts 和 matplotlib 实现地各种类型地数据分析图表,交互式地图,词云等等。

Matplotlib 是一个 Python 的 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib 这个标准类库,开发者只需要几行代码就可以实现生成绘图,折线图、散点图、柱状图、饼图、直方图、组合图等数据分析可视化图表。Matplotlib 使用 NumPy 进行数组运算,并调用一系列其他的 Python 库来实现硬件交互。

(一)折线图

折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。在折线图中,类别数据沿水平轴均匀分布,所有值数据沿垂直轴均匀分布。如果分类标签是文本并且代表均匀分布的数值(如月、季度或财政年度),则应该使用折线图。当有多个系列时,尤其适合使用折线图—对于一个系列,应该考虑使用类别图。如果有几个均匀分布的数值标签(尤其是年),也应该使用折线图。如果拥有的数值标签多于十个,请改用散点图。另外,折线图是支持多数据进行对比的。

Python 利用 matplotlib 类库实现折线图非常简单,直接上代码:

#author: hanshiqiang365

import matplotlib.pyplot as plt

import numpy as np

x = np.arange()

y = np.sin(x)

z = np.cos(x)

plt.plot(x, y, marker=, linestyle="--", color="orange")

plt.plot(x, z)

plt.title("Python matplotlib Demo - By hanshiqiang365")

plt.xlabel("width")

plt.ylabel("height")

plt.legend(["Y","Z"], loc="upper right")

plt.grid(True)

plt.show()

程序运行生成的折线图 Demo 如下:

(二)散点图

散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点。值由点在图表中的位置表示。类别由图表中的不同标记表示。散点图通常用于比较跨类别的聚合数据。

Python 利用 matplotlib 类库实现散点图非常简单,直接上代码:

#author: hanshiqiang365

import matplotlib.pyplot as plt

import numpy as np

plt.title("Python matplotlib Demo - By hanshiqiang365")

plt.xlabel("width")

plt.ylabel("height")

plt.scatter(x,y)

plt.show()

程序运行生成的散点图 Demo 如下:

(三)柱状图

柱状图(Bar Chart),是一种以长方形的长度为变量的表达图形的统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况,用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。柱状图亦可横向排列,或用多维方式表达。柱状图主要用于数据的统计与分析,早期主要用于数学统计学科中,到现代使用已经比较广泛,应用柱状图易于比较各组数据之间的差别。

Python 利用 matplotlib 类库实现柱状图非常简单,直接上代码:

#author: hanshiqiang365

import matplotlib.pyplot as plt

import numpy as np

plt.title("Python matplotlib Demo - By hanshiqiang365")

plt.xlabel("width")

plt.ylabel("height")

x = np.arange()

plt.bar(x, y)

plt.show()

程序运行生成的柱状图 Demo 如下:

(四)饼图

饼图英文学名为 Sector Graph,又名 Pie Graph,常用于统计学模块。仅排列在工作表的一列或一行中的数据可以绘制到饼图中。饼图显示一个数据系列中各项的大小与各项总和的比例。饼图中的数据点显示为整个饼图的百分比。

Python 利用 matplotlib 类库实现饼图非常简单,直接上代码:

#author: hanshiqiang365

import matplotlib.pyplot as plt

import numpy as np

plt.title("Python matplotlib Demo - By hanshiqiang365")

labels = ['Sample-A','Sample-B','Sample-C']

plt.pie(x,labels=labels)

plt.show()

程序运行生成的饼图 Demo 如下:

(五)直方图

直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。直方图是数值数据分布的精确图形表示,显出出一个连续变量(定量变量)的概率分布的估计。为了构建直方图,第一步是将值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值,这些值通常被指定为连续的,不重叠的变量间隔,而间隔必须相邻,并且通常是(但不是必须的)相等的大小。

Python 利用 matplotlib 类库实现直方图非常简单,直接上代码:

#author: hanshiqiang365

import matplotlib.pyplot as plt

import numpy as np

plt.title("Python matplotlib Demo - By hanshiqiang365")

plt.xlabel("width")

plt.ylabel("height")

mean, sigma = , 

plt.hist(x,)

plt.show()

程序运行生成的直方图 Demo 如下:

除了以上这五种基础的数据分析可视化图表外,matplotlib 类库还支持各种自定义的可视化数据分析图表类型(关于这一点在以后会专门写篇文章来讲),功能非常强大,并且在此基础上,我们还可以玩一点花样出来,我们可以将这些不同类型的分析图表任意组合显示到一个页图上,从而更好地展示信息。

Python 利用 matplotlib 类库实现组合图也非常简单,直接上代码:

#author: hanshiqiang365

import matplotlib.pyplot as plt

import numpy as np

plt.figure(figsize=(,),dpi=)

A = plt.subplot(,,)

plt.plot([,],[,], color="red")

plt.subplot(,,)

plt.title("Demo B")

plt.xlabel("width")

plt.ylabel("height")

plt.plot([,],[,], color="green")

plt.subplot(,,)

plt.title("Demo C")

plt.xlabel("width")

plt.ylabel("height")

# 选择子图A

plt.sca(A)

plt.title("Demo A")

plt.xlabel("width")

plt.ylabel("height")

plt.show()

程序运行生成的组合图 Demo 如下:

数据分析是 Python 应用的五大领域之一,而交互式的数据可视化图表是可视化技术在非空间数据领域的应用,使人们不再局限于通过数据表格来观察和分析数据信息,而能以更直观的方式看到数据及其关系,清晰而明确地展示数据分析的结果,提供更好的用户体验。

Python 在数据分析和交互式数据可视化领域的技术实现上具有非常大的优势,利用各种类库Python可以高效率高质量地实现业务功能需要,而和R语言相比,Python 更适合具有IT背景的人来用于数据分析,并且可以和其他领域例如批量处理脚本、人工智能、WEB 开发等的应用很好的集成起来实现一个整体的技术解决方案(total solution),为客户创造价值。

Python 技术交流群:238757010

来源:韩思工作室

原文链接:http://t.cn/RBG93vK

Python调用matplotlib实现交互式数据可视化图表案例的更多相关文章

  1. python实现的电影票房数据可视化

    代码地址如下:http://www.demodashi.com/demo/14275.html 详细说明: Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采 ...

  2. Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&&两个echarts详细教程(柱状图,南丁格尔图)

    Webstorm+Webpack+echarts   ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...

  3. ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表

    ECharts http://ecomfe.github.com/echarts 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算 ...

  4. 数据可视化图表ECharts

    介绍: ECharts是一个基于ZRender(轻量级Canvas类库)的纯javascript图表库,提供可交互.个性化的数据可视化图表. ECharts提供了折线图.柱状图.散点图.饼图.K线图, ...

  5. Excel数据可视化图表设计需要注意的几个问题

    ​大数据发展迅速的时代,数据分析驱动商业决策.对于庞大.无序.复杂的数据要是没经过合适的处理,价值就无法体现. 可以想象一本没有图片的教科书.没有图表.图形或是带有箭头和标签的插图或流程图,那么这门学 ...

  6. 干货 | Bokeh交互式数据可视化快速入门

    Bokeh简介 Bokeh是一款交互式可视化库,在浏览器上进行展示. Bokeh可以通过Python(或其它语言),快速便捷地为大型流数据集提供优雅简洁的高性能交互式图表. 安装 在python中有多 ...

  7. 前端使用d3.js调用地图api 进行数据可视化

    前段时间自己研究了demo就是把某个区域的某个位置通过经纬度在地图上可视化.其实就是使用了第三方插件,比现在比较火的可视化插件d3.js echart.js.大致思路就是,把要用到的位置的geojso ...

  8. Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  9. 百度数据可视化图表套件echart实战

    最近我一直在做数据可视化的前端工作,我用的最多的绘图工具是d3.d3有点像photoshop,功能很强大,例子也很多,但是学习成本也不低,做项目是需要较大人力投入的.3月底由在亚马逊工作的同学介绍下使 ...

随机推荐

  1. consul日常操作命令

    #开发模式运行agent consul agent -dev #查看consul 集群成员 consul members [-detailed] members命令的输出基于gossip协议,并最终一 ...

  2. QuickBI助你成为分析师-数据建模(一)

    摘要: 数据集编辑功能界面介绍以及常见问题总结. 在数据集编辑界面可以进行数据建模来更好的展示数据,创建数据集默认将数值类型字段作为度量,日期.字符串等类型作为维度,度量可以根据维度分组展示.下面来介 ...

  3. EntityFramework Code First便捷工具——数据迁移

    使用EntityFramework Code First开发,数据迁移是一个不得不提的技术. 在我们的开发过程中,难免需要对模型进行改进,模型改进后,会导致实体集与数据库不一致,当然我们可以通过删除数 ...

  4. ZT 二分插入排序也称折半插入排序

    二分插入排序也称折半插入排序,基本思想是:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数 x ,利用二分查找算法找到 ...

  5. 对象在hibernate中的状态

    首先hibernate中对象的状态有三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate().get().load() ...

  6. Linux下七牛云存储qrsync命令行上传同步工具

    原址:https://m.aliyun.com/yunqi/ziliao/54370 VPS数据备份是一个重要的工作,之前在文章:使用七牛云存储自动备份VPS数据分享过使用七牛云存储提供的工具QRSB ...

  7. Hive学习之路 (六)Hive SQL之数据类型和存储格式

    一.数据类型 1.基本数据类型 Hive 支持关系型数据中大多数基本数据类型 类型 描述 示例 boolean true/false TRUE tinyint 1字节的有符号整数 -128~127 1 ...

  8. 自动搭建ssm项目

    手把手教你搭建ssm项目 注意,必须修改:包名.数据库名称.账号.密码 注意:必须配置好第一次,“引入后”才能配置第二次 第一步:打开idea选择创建maven项目 import java.io.*; ...

  9. iptables传输数据包的过程

    IPTABLES传输数据包的过程 大概过程如图所示: 1. 数据包进入网卡时,首先进入PREROUTING链,linux内核会判断数据包的目的IP是否为本地主机 2. 如果数据包的目的IP是本地主机, ...

  10. 小H和密码

    链接:https://www.nowcoder.com/acm/contest/72/B来源:牛客网 题目描述     小H在击败怪兽后,被一个密码锁挡住了去路     密码锁由N个转盘组成,编号为1 ...