当前位置:
首页 > Python基础教程 >
-
初识人工智能(一):数据分析(一):matplotlib绘图库
1. matplotlib绘图库
1.1 什么是matplotlib
matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。是最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。
1.2 安装matplotlib
在cmd窗口下,执行此命令。
1.3 基本使用
假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15],我们现在使用matplotlib画一个折线图。
- #导入pyplot
- from matplotlib import pyplot as plt
- #数据在x轴的位置,是一个可迭代对象
- x = range(2,26,2)
- #数据在y轴的位置,是一个可迭代对象
- y = [15,13,14.5,17,20,25,26,26,24,22,18,15]
- #x轴和y轴的数据一起组成了所有要绘制出的坐标
- #分别是(2,15),(4,13)(6,14.5)...
- #传入x和y,通过plot绘制出折线图
- plt.plot(x,y)
- #在执行程序的时候展示图形
- plt.show()
运行结果:
我们看一下图形,可以看到存在几个问题。
- 设置图片大小(高清图片)。
- 保存到本地。
- 描述信息,比如x轴和y轴表示什么,这个图表示什么。
- 调整x或者y的刻度的间距。
- 线条的样式(例如颜色,透明度等)。
- 标记出特殊的点(例如最高点和最低点)。
- 给图片添加一个水印(防伪、防盗用)。
1.4 解决存在的问题
1.4.1 设置图片大小及保存
我们可以通过figure方法来控制图片的大小。
Figure图形图标的意思,在这里指的就是我们画的图。通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例。在图像模糊的时候可以传入dpi参数,让图片更加清晰。
调用savefig方法保存图片,可以保存为svg这种矢量图格式,放大不会有锯齿。
- # coding=utf-8
- from matplotlib import pyplot as plt
- x = range(2,26,2)
- y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
- #设置图片大小
- plt.figure(figsize=(20,8),dpi=80)
- #绘图
- plt.plot(x,y)
- #保存
- plt.savefig("./sig_size.png")
- #展示图形
- plt.show()
运行结果:
这样图片的大小及保存的问题就解决了。
1.4.2 调整x或者y轴上的刻度
我们可以看到刻度并不精确,所以我们就要设置x轴和y轴的刻度了。
使用xticks和yticks,这两个的传值可以迭代。
- # coding=utf-8
- from matplotlib import pyplot as plt
- x = range(2,26,2)
- y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
- #设置图片大小
- plt.figure(figsize=(20,8),dpi=80)
- plt.xticks(x)
- #绘图
- plt.plot(x,y)
- #保存
- plt.savefig("./sig_size.png")
- #展示图形
- plt.show()
运行结果:
我们可以看到图形已经精确很多了,但是还不够,所以我们要继续精确。
- # coding=utf-8
- from matplotlib import pyplot as plt
- x = range(2,26,2)
- y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
- #设置图片大小
- plt.figure(figsize=(20,8),dpi=80)
- plt.xticks(range(2,25))
- #绘图
- plt.plot(x,y)
- #保存
- plt.savefig("./sig_size.png")
- #展示图形
- plt.show()
运行结果:
我们想要再精确就有些麻烦了,因为range方法不能传入小数,否则会报错,所以我们只能换一种方法来表示了。
- # coding=utf-8
- from matplotlib import pyplot as plt
- x = range(2,26,2)
- y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
- #设置图片大小
- plt.figure(figsize=(20,8),dpi=80)
- #设置x轴的刻度
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式