初识Matplotlib-01
初识数据分析
大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据产生的其他例子包括购买交易记录,网络日志,病历,军事监控,视频和图像档案,及大型电子商务。
在大数据和大数据分析,他们对企业的影响有一个兴趣高涨。大数据分析是研究大量的数据的过程中寻找模式,相关性和其他有用的信息,可以帮助企业更好地适应变化,并做出更明智的决策。

Matplotlib教程
介绍
Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。Matplotlib可用于Python脚本,Python和IPython Shell,Jupyter notebook,Web应用程序服务器和四个图形用户界面工具包。
Matplotlib尝试使容易的事情变得容易,使困难的事情变得可能。您只需几行代码就可以生成图表,直方图,功率谱,条形图,误差图,散点图等。
为了简单绘图,该pyplot模块提供了类似于MATLAB的界面,尤其是与IPython结合使用时。对于高级用户,您可以通过面向对象的界面或MATLAB用户熟悉的一组功能来完全控制线型,字体属性,轴属性等。
安装
用conda来安装
我们使用conda软件包来满足所有要求,在conda安装期间不需要,设置conda环境。在Anaconda Prompt下执行conda命令安装matplotlib包。执行命令是:
conda install matplotlib
安装完成之后,就可以在命令窗口或者Anaconda Spyder编程环境使用Matplotlib绘制数学图形
使用指南
本教程介绍了一些基本的用法模式和最佳实践,以帮助您开始使用Matplotlib。
一般概念¶
matplotlib具有广泛的代码库,可能会使许多新用户望而却步。但是,大多数matplotlib可以通过相当简单的概念框架和一些要点的知识来理解。
绘制需要在一系列级别上进行操作,从最普通的级别(例如,“使此二维数组轮廓化”)到最具体的级别(例如,“将该屏幕像素着色为红色”)。绘图程序包的目的是通过所有必要的控制来帮助您尽可能轻松地可视化数据-即,大多数时间通过使用相对高级的命令,并且仍然能够使用较低级别的命令。级别的命令(如果需要)。
因此,matplotlib中的所有内容都是按层次结构组织的。层次结构的顶部是matplotlib.pyplot模块提供的matplotlib“状态机环境” 。在此级别上,使用简单功能将绘图元素(线,图像,文本等)添加到当前图形中的当前轴。
注意 Pyplot的状态机环境的行为类似于MATLAB,对于具有MATLAB经验的用户应该最熟悉。
axis轴指的是x或者y这种坐标轴(图形的表示如下图所示)

Matplotlib,pyplot和pylab:它们之间有何关系?
Matplotlib是整个软件包,matplotlib.pyplot是Matplotlib中的模块。
对于pyplot模块中的功能,始终有一个“当前”图形和轴(根据要求自动创建)。例如,在下面的例子中,在第一次调用plt.plot创建轴,则后续调用plt.plot在同一坐标添加额外的线,以及 plt.xlabel,plt.ylabel,plt.title和plt.legend设置轴标签和标题和添加的图例。
x = np.linspace(0, 2, 100) plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic') plt.xlabel('x label')
plt.ylabel('y label') plt.title("Simple Plot") plt.legend() plt.show

pylab是一个便捷模块, 在单个名称空间中批量导入 matplotlib.pyplot(用于绘图)和numpy(用于数学以及使用数组)。pylab已过时,并且由于命名空间污染而强烈不建议使用pylab。使用pyplot代替。
对于非交互式绘图,建议使用pyplot创建图形,然后使用OO接口进行绘图。
折线图(基础绘图)
初识应用:假设一天中每隔两个小时(range(2,26,2))的气温(C)分别是T = [15,13,14.5,17,20,25,26,26,27,22,18,15]
import matplotlib.pyplot as plt#(导入plt)
#可视化的x轴的坐标即数据在x轴的位置
x = range(2,26,2)
#数据在y轴的位置,是可迭代对象
#x轴和y轴的数据一起组成了所有要绘制出的坐标 分别是(2,15),(4,13),(6,14.5)。。。。。
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
plt.plot(x,y)#传入x和y,通过plot绘制出折线图
#在执行程序的时候展示图形
plt.show()

我们自己能看懂图的意思,但是别人看得懂吗? 接下来我们可以做的更多!!!
1、设置图片大小(高清无码大图)
2、保存到本地
3、描述信息,x轴y轴表示什么,这个图表示什么?
4、调整x、y轴的刻度的间距
5、线条的样式(颜色、透明度啊)
6、标记出特殊的点(比如最高点最低点)
7、给图片加上水印(告诉别人这是我自己专属的)
import matplotlib.pyplot as plt#(导入plt)
#可视化的x轴的坐标即数据在x轴的位置
x = range(2,26,2)
#数据在y轴的位置,是可迭代对象
#x轴和y轴的数据一起组成了所有要绘制出的坐标 分别是(2,15),(4,13),(6,14.5)。。。。。
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
#设置图片大小
plt.figure(figsize=(15,6),dpi=80)#figure图形图表的意思,在这里值得是我们画的图
#通过实例化一个figure并且传入参数,能够在后台自动使用figure实例
#在图片模糊的时候可以传入dpi参数,让图片更加清晰
#x轴的刻度是系统自动分配所以我们想自己显示我们想要的刻度
#即传入x这个x可以是自己自定义的
plt.xticks(x)
#y轴与x轴一样
plt.yticks(range(min(y),max(y)+1))
plt.plot(x,y)#传入x和y,通过plot绘制出折线图
#保存
plt.savefig("./tep.png")#可以保存为.svg这种矢量图格式,放大不会有锯齿,即不会失真
#在执行程序的时候展示图形
plt.show()
图片大小、刻度、保存

那么问题来了:如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况? a = [random.randint(20,35) for i in range(120)]
import matplotlib.pyplot as plt
import random
plt.rc('font', family='SimHei', size=14) ##显示中文 #size=7 表示中文字体大小,根据自己需要调整 #设置显示中文的字体 fc-list :lang=zh linux mac os #因为y要对应x的个数所以应该有120次的y值
y = [random.randint(20,35) for i in range(0,121)]
x = range(0,121)
#画布大小 还有高清度
plt.figure(figsize=(20,10),dpi=100) _xticks_lable = ["10点{}分".format(i) for i in range(60)]
_xticks_lable += ["11点{}分".format(i) for i in range(61)] #第一个参数x轴显示的刻度 第二个参数是x轴显示字符串 第三个参数是显示字符串的旋转角度(发现中文显示不出来,因此需要设置显示的字体)
plt.xticks(list(x)[::3],_xticks_lable[::3],rotation=45) #这个设置y轴显示的步长
plt.yticks(range(0,40))
#给我的图形标题
plt.title("10点到12点每分钟温度变化情况")
#横坐标显示的标签
plt.xlabel("时间")
#纵坐标显示的标签
plt.ylabel("温度(℃)")
#画图
plt.plot(x,y)
#显示屏幕上
plt.show()
注意:显示中文不同的系统方法不一样

动动手
假设大家在30岁的时候,根据自己的实际情况统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势
a = [10,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1] 要求:
y轴表示个数
x轴表示岁数,比如11岁,12岁等
import matplotlib.pyplot as plt
plt.rc("font",family="SimHei",size=14)
x = range(11,30)
y = [10,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
#这三个都是对坐标轴的描述信息
plt.title("11岁到30岁每年交女朋友的数量示意图")
plt.xlabel("年龄")
plt.ylabel("女朋友个数")
#这两个是对坐标轴的显示刻度描述
xticks_label = ["{}岁".format(i) for i in range(11,31)]
plt.xticks(list(x),xticks_label,rotation=45)
plt.yticks(range(11))
plt.plot(x,y)
plt.show()

假设大家在30岁的时候,根据自己还有同桌的实际情况统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己和同桌每年交女(男)朋友的数量走势 要求: y轴表示个数 x轴表示岁数,比如11岁,12岁等[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,11]b = [1,0,3,1,2,2,3,3,2,1,1,1,1,1,1,1,1,1]
绘图的时候(plt.plot)需要自定义风格就需要如下参数展示的

代码展示如下
import matplotlib.pyplot as plt
plt.rc("font",family="SimHei",size=14) x = range(11,31)
y1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2 = [1,0,3,1,2,2,3,3,2,1,1,1,1,1,1,1,1,1,1,1]
#画布加上x y轴的标签名字
a1 = plt.figure(figsize=(20,8),dpi=80)
plt.title("我和同桌11岁到30岁每年交女朋友的数量示意图")
plt.xlabel("年龄")
plt.ylabel("女朋友个数")
#x y 轴刻度
_xticks_label = ["{}岁".format(i) for i in range(11,31)]
plt.xticks(x,_xticks_label)
plt.yticks(range(8)) #为了更好的观看 添加网格效果 可以加颜色(16进制) 线的款式 线条粗细linewidth 透明度alpha
plt.grid(alpha=0.5,linestyle="-.")#参数alpha 0到1之间调动 #画出来 可以加颜色 线的款式 线条粗细linewidth 透明度alpha
plt.plot(x,y1,label="自己",color="orange",linestyle=":")
plt.plot(x,y2,label="同桌",color="cyan",linestyle="--") #添加图例 更好观看折线谁是谁 更加客观看懂
plt.legend(loc="upper left")#可以放置图例的位置数字0-10或者看源码输入
#展示
plt.show()

扩展:在上一个案例中,假设你希望在图中标记出自己和同桌交女朋友最多的那一年所对应的数据,那么应该怎么做?(添加文本注释)
在上一个案例中,假设你打算把自己的统计结果发布到网上供人瞻仰,但是很担心自己的图片被人盗用,你该怎么做?(加水印)
初识Matplotlib-01的更多相关文章
- 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学
076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...
- 4.1Python数据处理篇之Matplotlib系列(一)---初识Matplotlib
目录 目录 前言 (一)matplotlib的介绍 (二)画一个简单的画布 ==1.源代码== ==2.展示效果== (三)画布按键的功能介绍 ==1.对于画布功能键的排序== ==(1)主页== = ...
- 初识matplotlib
最好将配置项与代码分离,在代码之外用一个永久的文件设定matplotlib参数默认值 配置文件选择放在当前工作目录,包括以下配置项: P13
- python可视化库 Matplotlib 01 figure的详细用法
1.上一章绘制一幅最简单的图像,这一章介绍figure的详细用法,figure用于生成图像窗口的方法,并可以设置一些参数 2.先看此次生成的图像: 3.代码(代码中有详细的注释) # -*- enco ...
- $python数据分析基础——初识matplotlib库
基本用法 import numpy as np import matplotlib.pyplot as plt # 年份 year = [1950,1970,1990,2010] # 全球总人口(单位 ...
- 初识 Javascript.01 -- Javascript基础|输出方式、变量、变量命名规范、数据类型、
Javascript基础 1 聊聊Javascript 1.1 Javascript的历史来源 94年网景公司 研发出世界上第一款浏览器. 95年 sun公司 java语言诞生 网景公司和su ...
- uni-app的初识(01)
1.什么是uni-app uni-app 是一个使用 Vue.js 开发所有前端应用的框架, 开发者编写一套代码, 可发布到IOS, Android, H5, 以及各种小程序(微信,百度)等多个平台. ...
- 初识Ansible 01
自动化运维工具有很多,从实现的功能.维护的成本.使用的系统来选择,几种常用运维工具比较: Puppet基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱 SaltS ...
- Mac教程macOS教程 苹果电脑教程
第1 章 初识MacOS 01 菜单栏 02 键盘 03 聚焦(Spotlight)
- Python3绘图库Matplotlib(01)
1 First plots with Matplotlib 简单的绘图1 简单的绘图2 简单的绘图3 2 网格 = grid 3 设置坐标轴的取值范围 = axis xlim ylim 方法1:整体设 ...
随机推荐
- nessus安装
1.安装注册 (1)从https://www.tenable.com/products/nessus/select-your-operating-system上下载对应操作系统版本的nessus,结果 ...
- 2015-11-17 linux基础笔记
21. 可执行权限不代表能够执行,这得看文件内容 22. 还是可以用适当的拓展名表示该文件是什么种类的*.sh 脚本或批处理文件 *Z.*.tar.*.tar.gz.*.zip.*.tgz 压缩文件 ...
- 利用递归,反射,注解等,手写Spring Ioc和Di 底层(分分钟喷倒面试官)了解一下
再我们现在项目中Spring框架是目前各大公司必不可少的技术,而大家都知道去怎么使用Spring ,但是有很多人都不知道SpringIoc底层是如何工作的,而一个开发人员知道他的源码,底层工作原理,对 ...
- Guava 常用工具类
引入guava包: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava ...
- 优化Recorder H5录音:可边录边转码上传服务器,支持微信提供Android IOS Hybrid App源码
Recorder H5 GitHub开源库随着支持功能的增多,音频转码处理效率渐渐的跟不上需求了,近期抽时间对音频转码部分进行了升级优化,以支持更多实用的功能. 另外IOS的Hybrid App也完成 ...
- Flutter学习笔记(23)--多个子元素的布局Widget(Rwo、Column、Stack、IndexedStack、Table、Wrap)
如需转载,请注明出处:Flutter学习笔记(23)--多个子元素的布局Widget(Rwo.Column.Stack.IndexedStack.Table.Wrap) 上一篇梳理了拥有单个子元素布局 ...
- C#数据结构_基本概念及线性表
常见的4类数据结构: 1.集合. 2.线性结构.3.树形结构.4.图状结构. 数据结构(Data Structure)简记为 DS,是一个二元组,DS = (D,R) 其中:D 是数据元素的有限集合, ...
- Javaweb Cookie机制
Javaweb Cookie机制 一.前言 HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,浏览器的每一次请求都是完全孤立的,即使 HTTP1.1 支持持续连 ...
- Socket(套接字)在服务器端和客户端之间的基本工作原理
Socket之间的连接过程主要可以概括为以下三步: 服务器建立监听:客户端初始化Socket动态库后创建套接字,然后指定客户端Socket的地址,循环绑定Socket直至成功,然后开始建立监听,此时客 ...
- pickle 都写文件
import pickle mylist=[[1,2,3,4,5,6,7],["abc","xyz","hello"],[1,2,3,4,5 ...