在学习Python的各种工具包的时候,看网上的各种教程总是感觉各种方法很多很杂,参数的种类和个数也十分的多,理解起来需要花费不少的时间。

所以我在这里通过几个例子,对方法和每个参数都进行详细的解释,这样对于0基础的人也可以快速的掌握Matplotlib基本图形操作。

  • 首先导入numpy和matplotlib包
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline # 使图形可以直接在notebook上显示
  • 首先画一个最基本的图形
plt.plot([1,2,3,4,5],[1,4,9,16,25]) # plot方法是绘制图形,第一个参数是x轴的值,第二个参数是对应的y轴的值
plt.xlabel('this is x-axis',fontsize = 16) #xlabel是指定x轴的名字 fontsize是指定字体的大小
plt.ylabel('this is y-axis',fontsize = 16)

  • 不同类型的线条的字符参数;不同颜色的字符参数

  • 给plot方法传入指定的线条和颜色参数
plt.plot([1,2,3,4,5],[1,4,9,16,25],'gv') #其中‘gv’中的g代表green绿色,v代表下三角形
plt.xlabel('xlabel',fontsize = 16)
plt.ylabel('ylabel',fontsize = 16)

  • 除了上面这种给参数的方法外,还可以分开来给参数
plt.plot([1,2,3,4,5],[1,4,9,16,25],'+',color='r') # 其中的‘+’代表加号点,r代表red红色
plt.xlabel('xlabel',fontsize = 16)
plt.ylabel('ylabel',fontsize = 16)

  • 下面我们来绘制多条线
tang_numpy = np.arange(0,10,0.5) # 生产从0到10间隔为0.5的等差序列
# 然后连续绘制三条线,调用三次plot方法
plt.plot(tang_numpy,tang_numpy,'r--')
plt.plot(tang_numpy,tang_numpy*2,'bs')
plt.plot(tang_numpy,tang_numpy*3,'go')
  • 也可以只使用一次plot方法绘制三条线,得到的结果是一样的
plt.plot(tang_numpy,tang_numpy,'r--',
tang_numpy,tang_numpy*2,'bs',
tang_numpy,tang_numpy*3,'go')

  • 接下来绘制一个余弦函数,给定比较多的参数,注释会解释每个参数的作用
x = np.linspace(-10,10) #线条的范围
y = np.sin(x)
# linewidth参数是线条的宽度,color是颜色,linestype是线条的类型,marker是标记的类型,makercolor是标记的颜色,markersize是标记大小,alpha是透明度
plt.plot(x,y,linewidth=5, color='b',linestyle='-',marker = 'o',markerfacecolor='r',markersize = 8,alpha = 0.4)

  • 子图,一个图形中可以由多个子图组合而成,可以吧一整个图看成是一个矩阵,而其中的子图是该矩阵的各个元素
# 211 表示一会要画的图是2行一列的 最后一个1表示的是子图当中的第1个图
plt.subplot(211)
plt.plot(x,y,color='r') # 212 表示一会要画的图是2行一列的 最后一个1表示的是子图当中的第2个图
plt.subplot(212)
plt.plot(x,y,color='b')

# 211 表示一会要画的图是1行2列的 最后一个1表示的是子图当中的第1个图
plt.subplot(121)
plt.plot(x,y,color='r') # 212 表示一会要画的图是1行2列的 最后一个1表示的是子图当中的第2个图
plt.subplot(122)
plt.plot(x,y,color='b')

# 321 表示一会要画的图是3行2列的 最后一个1表示的是子图当中的第1个图
plt.subplot(321)
plt.plot(x,y,color='r')
# 321 表示一会要画的图是3行2列的 最后一个4表示的是子图当中的第4个图
plt.subplot(324)
plt.plot(x,y,color='b')

  • 给图加上一些文字注释
plt.plot(x,y,color='b',linestyle=':',marker = 'o',markerfacecolor='r',markersize = 10)
plt.xlabel('x:---')
plt.ylabel('y:---')
plt.title('this is the title:---')
plt.text(0,0,'this is the text') #(0,0)是text的位置
plt.grid(True) #这个是网格
# xy是箭头指向的位置,xytext是注释的位置,arrowprops是指定箭头的属性
plt.annotate('tangyudi',xy=(-5,0),xytext=(-2,0.3),arrowprops = dict(facecolor='red',shrink=0.05,headlength= 20,headwidth = 20))

  • 设置图片的风格

x = np.linspace(-10,10)
y = np.sin(x)
plt.style.use('dark_background') #给图片指定风格
plt.plot(x,y)

  • 绘制柱状图
np.random.seed(0) #设置随机数种子
x = np.arange(5)
y = np.random.randint(-5,5,5)
fig,axes = plt.subplots(ncols = 2) # 有两列的子图
v_bars = axes[0].bar(x,y,color='blue') #axes[0]代表第一个子图
h_bars = axes[1].barh(x,y,color='red')
axes[0].axhline(0,color='grey',linewidth=2) #加一条横线
axes[1].axvline(0,color='grey',linewidth=2) #加一条竖线

fig,ax = plt.subplots()
v_bars = ax.bar(x,y,color='lightblue')
# 让值小于0的柱状颜色为green
for bar,height in zip(v_bars,y): # bar,height为柱状的高度值
if height < 0:
bar.set(edgecolor = 'darkred',color = 'green',linewidth = 3)
ax.axhline(0,color = 'red') # 0的地方加一条水平线

十分钟快速学会Matplotlib基本图形操作的更多相关文章

  1. [转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!

    十分钟快速理解DPI和PPI,不再傻傻分不清! https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for= ...

  2. 十分钟一起学会ResNet残差网络

    作者 | 荔枝boy 目录 深层次网络训练瓶颈:梯度消失,网络退化 ResNet简介 ResNet解决深度网络瓶颈的魔力 ResNet使用的小技巧 总结 深层次网络训练瓶颈:梯度消失,网络退化 深度卷 ...

  3. 5分钟快速学会xpath定位

    今天我们先来和大家说一下appium,首先教大家如何定位xpath,五分钟即可学会:例:现在我想定位下面这个登录按钮: xpath该怎么写呢? 先不管三七二十几,先写//,然后找你要定位元素最近的可以 ...

  4. 十分钟快速入门 Python,看完即会,不用收藏!

    本文以 Eric Matthes 的<Python编程:从入门到实践>为基础,以有一定其他语言经验的程序员视角,对书中内容提炼总结,化繁为简,将这本书的精髓融合成一篇10分钟能读完的文章. ...

  5. Redis数据类型简介(十分钟快速学习Redis)

    如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...

  6. 十分钟能学会的框架,MVC+20个常用函数

    LazyPHP(以下简称LP)是一个轻框架. 之所以开发这么一个框架,是因为其他框架给的太多.在高压力的情况下,ORM和盘根错节的对象树反而将简单的页面请求处理复杂化,在调试和性能上带来反面效果. L ...

  7. HDFS+MapReduce+Hive+HBase十分钟快速入门

    1.     前言 本文的目的是让一个从未接触Hadoop的人,在很短的时间内快速上手,掌握编译.安装和简单的使用. 2.     Hadoop家族 截止2009-8-19日,整个Hadoop家族由以 ...

  8. Redis 十分钟快速入门

    本教程是一个快速入门教程,所以Redis的命令只是简单介绍了几个常用的,如果有其他需求请求官网查看API 使用. 1. Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的ke ...

  9. 十分钟快速入门 Python

    本文以 Eric Matthes 的<Python编程:从入门到实践>为基础,以有一定其他语言经验的程序员视角,对书中内容提炼总结,化繁为简,将这本书的精髓融合成一篇10分钟能读完的文章. ...

随机推荐

  1. 将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件

    Python 一大重要的功能,就是可处理大量数据,那分不开的即是使用Excel表格了,这里我做下学习之后的总结,望对我,及广大同仁们是一个帮助Python处理Excel数据需要用到2个库:xlwt 和 ...

  2. This probably means that Tcl wasn't installed properly.

    报错 D:/Anaconda3/tcl/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.6.8, need ...

  3. MySQL如何选择合适的索引

    先来看一个栗子 EXPLAIN select * from employees where name > 'a'; 如果用name索引查找数据需要遍历name字段联合索引树,然后根据遍历出来的主 ...

  4. 树形动态规划 fjutoj-2392 聚会的快乐

    聚会的快乐 TimeLimit:1000MS  MemoryLimit:128MB 64-bit integer IO format:%lld Problem Description 你要组织一个由你 ...

  5. codeforces 813 D. Two Melodies(dp)

    题目链接:http://codeforces.com/contest/813/problem/D 题意:求两个不相交的子集长度之和最大是多少,能放入同一子集的条件是首先顺序不能变,然后每一个相邻的要么 ...

  6. bzoj 1051 [HAOI2006]受欢迎的牛(tarjan缩点)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1051 题解:缩点之后判断出度为0的有几个,只有一个那么输出那个强连通块的点数,否者 ...

  7. 数论---GCD(最大公约数)+LCM(最小公倍数)

    #include<bits/stdc++.h> #define ll long long using namespace std; /* ll gcd(ll a, ll b) {//非递归 ...

  8. 02 python 必知

    一.变量 1.变量的定义 将程序运算的中间结果临时存在内存里,以便后续代码调用. 2.变量的使用规范 1)变量必须要有数字,字母,下划线,任意组合. 2)变量不能数字开头. 3)不能是python中的 ...

  9. java中最容易犯错的特殊字符

    问题背景 能准确说出下面的java 执行完毕后会打印出什么? System.out.println( String.class.getName()+ ".class"); Syst ...

  10. text2pcap: 将hex转储文本转换为Wireshark可打开的pcap文件

    简介 Text2pcap是一个读取ASCII hex转储的程序,它将描述的数据写入pcap或pcapng文件.text2pcap可以读取包含多个数据包的hexdumps,并构建多个数据包的捕获文件.t ...