Python 绘图入门

  1. 数据可视化的概念及意义

数据可视化有着久远的历史,最早可以追溯至10世纪,至今已经应用和发展了数百年。不知名的天文学家是已知的最早尝试以图形方式显示全年当中太阳,月亮和行星的位置变化的图。

图1 数据可视化的发展历程

什么是数据可视化?

可视化其实是一个抽象的过程,它可以简单地理解为将一个不易描述的事物形成一个可感知画面的过程,也就是从数据空间到图形空间的映射

图2 数据可视化过程

无论原始数据被映射为哪种图形数据,最终要达到的目的只有一个,便是准确地、高效地、全面地传递信息,进而建立起数据间的关系,使人们发现数据间的规律和特征,并挖掘出有价值的信息,提高数据沟通的效率

2.常见的数据可视化库

Python作为数据分析的首选语言,它针对数据分析的每个环节都提供了很多库。常见的数据可视化库包括matplotlib、seaborn、ggplot、bokeh、pygal、pyecharts。

  

  

图3

(1)Matplotlib

matplotlib是众多Python数据可视化库的鼻祖,其设计风格与20 世纪 80 年代设计的商业化程序语言MATLAB十分接近,具有很多强大且复杂的可视化功能。matplotlib包含多种类型的API,可以采用多种方式绘制图表并对图表进行定制。

(2)seaborn

seaborn是基于matplotlib进行高级封装的可视化库,它支持交互式界面,使得绘制图表的功能变得愈加容易,且图表的色彩更具吸引力,可以画出丰富多样的统计图表。

(3)ggplot

ggplot是基于matplotlib并旨在以简单方式提高matplotlib可视化感染力的库,它采用叠加图层的形式绘制图形,例如先绘制坐标轴所在的图层,再绘制点所在的图层,最后绘制线所在的图层,但其并不适用于个性化定制图形。

(4)bokeh

bokeh是一个交互式的可视化库,它支持使用Web 浏览器展示,可使用快速简单的方式将大型数据集转换成高性能的、可交互的、结构简单的图表。

(5)pygal

pygal是一个可缩放矢量图表库,用于生成可在浏览器中打开的SVG格式的图表,这种图表可以在不同比例的屏幕上自动缩放,方便用户交互。

(6)pyecharts

pyecharts是一个生成Echarts Enterprise Charts,商业产品图表)图表的库,它生成的Echarts图表凭借良好的交互性、精巧的设计得到了众多开发者的认可。

3.安装和设置

(1)如何安装这些库

这些库的安装可使用pip命令进行。例如:

pip install matplotlib

pip install 后面可以跟着具体想要安装的包名。

(2) 基本使用示例

matplotlib官网提供了三种API:pyplot API、object-oriented API、pylab API 。

  • pyplot API是使用pyplot模块开发的接口,该接口封装了一系列与MATLAB命令同名的函数,使用这些函数可以像使用MATLAB命令一样快速地绘制图表。
  • object-oriented API是面向对象的接口,该接口封装了一系列对应图表元素的类,只有创建这些类的对象并按照隶属关系组合到一起才能完成一次完整的绘图。
  • pylab API是使用pylab模块开发的接口,它最初是为了模仿MATLAB的工作方式而设计的,包括pyplot、numpy模块及一些其它附加功能,适用于Python交互环境中。

需要注意的是,matplotlib官方不建议使用pylab API进行开发,并在最新的版本中弃用了pylab API。用户在使用时可以根据自身的实际情况进行选择 ,若只是需要快速地绘制图表,可以选择pyplot API进行开发;若需要自定义图表,可以选择object-oriented API进行开发。

接下来,我们使用matplotlib快速的绘制截至目前巴黎奥运会各国获得金牌数量的对比图。

图4 奖牌榜

代码:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
country = (['美国','中国','澳大利亚','法国','英国','韩国'])
data = np.array([27,25,18,13,12,12])    # 准备数据
# 在当前画布的绘图区域中绘制图表
plt.plot(country,data,'bs-')
plt.show()                                   # 展示图表

图5 金牌对比图

这就是一个简单的折线图的绘制。除此之外,如何给图增加标题,横纵坐标,以及更改刻度标签?请关注“pythons数据可视化专栏”,带你入门python绘图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401558.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顶级期刊TMI论文解读┆PLHN: 用于DCE-MRI影像中乳腺肿瘤分割的原型学习引导混合网络

一、论文简介 本推文详细介绍了一篇上海理工大学健康科学与工程学院医学信息工程研究所(以下简称为医信所)周雷副教授课题组的最新论文《Prototype Learning Guided Hybrid Network for Breast Tumor Segmentation in DCE-MRI》,该论文发表在…

【Rust】使用开源项目搭建瓦片地图服务

本文通过获取在线和离线地图数据,使用开源Rust项目搭建瓦片地图服务,并使用DevExpress的MapControl控件使用自建地图服务 获取地图数据 获取地图数据有很多种方式,这里分别用在线和离线地图数据举例说明 在线下载瓦片地图 打开在线瓦片地…

搭建内网开发环境(一)|基于docker快速部署开发环境

引言 最近因需要搭建一套简易版的纯内网的开发环境,服务器采用 centos8.0,容器化技术采用 docker 使用 docker-compose 进行容器编排。 该系列教程分为两大类: 软件安装和使用,这类是开发环境常用的软件部署和使用,涉…

Oracle VM VirtualBox虚拟机内存不够用的解决方案

一、 前言 在使用Oracle VM VirtualBox虚拟机的过程中,随着时间的推移,我们会感觉我们的内存越来越不够用,今天就来给大家分享一下我们如何解决虚拟机内存不够用的问题。 二、解决方法 1.虚拟机碎片化整理 我们第一步要做的是碎片整理&…

VScode找python环境 (conda)

CtrlshiftP 会弹出如下框: 框里输入: Python:Select Interpreter 会得到:

24/8/15算法笔记 dp策略迭代 价值迭代

策略迭代: 策略迭代从某个策略开始,计算该策略下的状态价值函数。它交替进行两个步骤:策略评估(Policy Evaluation)和策略改进(Policy Improvement)。在策略评估阶段,计算给定策略下…

模电实验3 - 单电源集成运放交流耦合放大器

实验目标 学习集成运放的单电源使用。掌握交流耦合单电源集成运放放大器的测试方法。了解交流耦合单电源集成运放放大器的特点。 实验器材 ADALM2000 1kΩ 电阻 (1/4 W) x 1 10 kΩ 电阻 (1/4 W) x 1 100kΩ 电阻 (1/4 W) x 3 0.1μF电容 x 1 1μF电容 …

【深度学习】单层神经网络

单层神经网络 神经元感知机 1943年,心理学家McCulloch和数学家Pitts共同发表了神经网络的开山之作A Logical Calculus of the Ideas Immanent in Nervours Activity1,提出了神经网络的第一个数学模型——MP模型。该模型也成为了人工神经网络的基础。 神经…

7 数据存储单位,整型、浮点型、字符型、布尔型数据类型,sizeof 运算符

目录 1 数据类型的分类 2 数据存储单位 2.1 位 2.2 字节 2.3 其余单位 3 整数类型 3.1 基本介绍 3.2 整型的类型 3.2.1 整数类型多样性的原因 3.2.2 整型类型之间的相对大小关系 3.3 整型注意事项 3.4 字面量后缀 3.5 格式占位符 3.6 案例:声明并输出…

无参数读文件

目录 代码 代码解析 如何绕过获取flag 第一种方法(在apache中) ​编辑 第二种方法 首先获取目录下文件 代码 <?php highlight_file(__FILE__); if(; preg_replace(/[^\W]\((?R)?\)/, , $_GET[code])) { eval($_GET[code]); } ?> 代码解析 [^\W]\((?R)?…

接口优化笔记

索引 添加索引 where条件的关键自动或者order by后面的排序字段可以添加索引加速查询 索引只能通过删除新增进行修改&#xff0c;无法直接修改。 # 查看表的索引 show index from table_name; show create table table_name; # 添加索引 alter table table_name add index …

C/C++开发---全篇

1、统筹 学习目标&#xff1a; C/C、python精通。 就业匹配方向&#xff1a;专精一个领域&#xff0c;延长职业生涯。 &#xff08;1&#xff09;适配行业&#xff1b; &#xff08;2&#xff09;量化&#xff1b; &#xff08;3&#xff09;安全&#xff1b; &#xff08;4&…

华为od统一考试B卷【比赛】python实现

def split_params(param_str): return list(map(int, param_str.split(,))) def main(): # 获取输入 target_str input().strip() # 输入验证&#xff0c;拆分并转换为整数 try: m, n split_params(target_str) except ValueError: print(-1) return # 检查 M 和 …

react的pdf转图片格式上传到后端

这个东西做的我真的是头昏脑涨 主要需求是&#xff0c;upload上传pdf&#xff0c;pdf转图片格式展示&#xff0c;以图片格式上传到后端 封装了组件代码 父组件直接放就可以了 使用的插件pdfjs-dist&#xff0c;版本是 "pdfjs-dist": "2.5.207", impor…

高性能跨平台网络通信框架 HP-Socket v6.0.2

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4592706661.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v6.0.2 更新 一、主要更新 优化Linux通信组件多路复用处理架构&#xff0c;避免“惊群”问…

计算机的错误计算(六十三)

摘要 计算机的错误计算&#xff08;五十六&#xff09;探讨了大数的正切函数值的错误计算。本节讨论大数的余切函数的计算精度问题。 例1. 已知 计算 不妨用 3种方法计算。 (1) 在 Python 中利用 直接贴图&#xff1a; (2) 在 Java 中利用 若运行下列代码 import ja…

高密度互连HDI

HDI&#xff08;High Density Interconnector&#xff0c;高密度互连&#xff09;是一种先进的PCB技术&#xff0c;在有限的空间内&#xff0c;通过使用微细过孔和精细的布线来提高电路板的集成度。 特点&#xff1a; 微细过孔&#xff08;Microvias&#xff09;&#xff1a;…

城V4系列版本开源前后端uniapp代码

本文来自&#xff1a;智慧同城V4系列版本开源前后端uniapp代码 - 源码1688 应用介绍 演示地址&#xff1a;https://tongchengsaas.88881111.icu/ 账号&#xff1a;ceshi 密码&#xff1a;12345678 前端演示&#xff1a; 测试环境 php7.2mysql5.6ningx 安装拓展 ioncube&#x…

来看看设计日志组件SDK的基操

一、总览 设计一个日志组件来监控业务中的流程节点&#xff1b;我们需要分三步&#xff1b; 获取数据整理数据上传数据 二、获取数据 日常项目中使用的日志组件有&#xff1a;logback log4j: 优点&#xff1a;成熟稳定&#xff0c;灵活性高&#xff0c;性能良好&#xff0…

Windows平台RTSP|RTMP播放器如何实时调节音量

我们在做Windows平台RTSP、RTMP播放器的时候&#xff0c;有这样的技术需求&#xff0c;特别是多路监控的时候&#xff0c;并不是每一路audio都需要播放出来的&#xff0c;所以&#xff0c;这时候&#xff0c;需要有针对音量调节的设计&#xff1a; /** smart_player_sdk.cs* C…