基本流程

先介绍一下matplotlib画图的基本流程

import matplotlib.pyplot as plt #首先导入matplotlib画图包
import numpy as np #导入numpy库用来产生数据#产生数据
x = np.linspace(-2, 2, 100) #在-2到2之前取100个数建立一维数组
y = x**2 + 1#画图主要步骤
plt.figure() #产生窗口(可以设置具体属性,当不用设置时,可省略)
plt.plot(x, y) #画图,x为横坐标,y为纵坐标
plt.show() #显示(要有这个,才能最终显示出图片)

具体介绍

接下来具体介绍一下基本流程中用到的函数

  1. plt.figure()
plt.figure(num=3, figsize=(8, 5))
num:  指定当前的figure的序号,之前默认是由figure1开始每有一个新的窗口便加一,如:figure1、
figure2、figure3....figsize: 指定窗口的大小,例如figsize=(8, 5)则窗口横向为8个单位大小,纵向为5个单位大小。注意:plt.figure()后面跟的画图操作都是作用于这个窗口的,除非新的plt.figure()出现。
  1. plt.plot()
plt.plot(x, y, color="red", linewidth=1, linestyle="--")
color: 指定画图的颜色,如“red”为红色。
linewidth: 指定线的粗细。
linestyle: 指定画出的样式,如“-”为实线, “--”为虚线。

其它设置

  1. 设置坐标轴的名字,范围,和间隔(包括将数字替换为其它文字)
#设置坐标轴的名字
plt.xlabel("X") #设置横向坐标轴的名字为X
plt.ylable("Y") #设置纵向坐标轴的名字为Y#设置坐标轴的范围
plt.xlim((-1,1)) #设置横向坐标轴的范围为-1到1
plt.ylim((-1,8))#设置坐标轴的间隔
new_xticks = np.linspace(-2,2,5) #产生一个-2到2之间均匀分布的5个数字作为一维数据
plt.xticks(new_xticks) #将产生的一维数组作为横向坐标轴的坐标值#将坐标轴的刻度改变为其它标识
plt.yticks([1, 3, 5], ["$bad$", "OK", "good"])
plt.xlabel("name"): 可以设置坐标轴的名字
plt.xlim((-5,5)) :设置坐标轴的取值范围
plt.xticks([-1, -.05, 0]): 用列表或一维数组设置坐标走的刻度
plt.yticks([-1,-0.5, 0], ["$bad$", "OK", "good"]) :将-1对应的值换为bad,如果字符串前后加$则会改变其样式。

  1. 设置坐标轴的位置
ax = plt.gca()#意为 get current axis,得到当前的坐标轴信息
ax.spines[“top"].set_color("none") #设置上边框颜色为白色
ax.spines[“right"].set_color("none") #设置右边框颜色为白色

  1. 设置坐标轴对应的框边
ax.xaxis.set_ticks_position("bottom") #设置横坐标轴对应下边框
ax.yaxis.set_ticks_position("left") #设置纵坐标轴对应左边框
  1. 设置坐标轴的位置
ax.spines["bottom"].set_position(("data", 0)) #设置下边框的位置在左边框的零刻度处
ax.spines["left"].set_position(("data", 0)) #设置左边框的位置在下边框的零刻度处

给图像做标注

  1. 给对应的绘制数据一个label
#最简单的方法(直接在plot中加label属性,plt.legend()直接写,不加参数)
x = np.linspace(-2,2,50)
y1 = 2*x + 1
y2 = x**2 + 1plt.plot(x, y1, color="red", label="First Line")
plt.plot(x, y2, color="blue", label="Sec Line")
plt.legend()

#详细的方法(在plt.legend()直接加参数)
x = np.linspace(-2,2,50)
y1 = 2*x + 1
y2 = x**2 + 1L1, = plt.plot(x, y1, color="red", label="First Line")
L2, = plt.plot(x, y2, color="blue", label="Sec Line")
plt.legend(handles=[L1,L2], labels=["first", "sec"], loc="best")

legend()中的参数:
handles: 后面跟着一个列表,列表的内容是需要标注的线,如L1, = plt.plot(x, y1, color=“red”, label=“First Line”),L1后面的逗号不可省略
labels:后面跟着一个列表,列表的内容是自定义的label
loc:接一个字符串,代表标注信息说明框的位置,如果是”best“则由程序自动挑选最合适的位置,”upper right"则为右上角

  1. 给图上的信息做标注
#先创建一个需要进行标注的点
x0 = 1
y0 = x0**2 + 1plt.scatter([x0],[y0],color="red",s=15)#把点画出来
plt.plot([x0, x0],[0,y0], color="black",linewidth=0.8,linestyle="==")#过该点画一条垂直横轴的线

#给图上数据做标注
plt.annotate(r"$x^2 + 1 = %S$"%y0,xycoords="data",xy=(x0,y0),textcoords="offset points", xytext=(+30, -30),
arrowprobs=dict(arrowstyle="->", connectionstyle="arc3,rad=1))

annotate()的参数:
字符串:如代码中的r" x 2 + 1 = x^2 + 1 = %S x2+1="%y0,会把这个字符串显示在图像中
xycoords=“data”:以数值为依据,挑选字符串位置的相对原点
xy = (x0, y0):字符串的位置相对的原点位置
textcoords=”offset points":以相对坐标的方式,决定字符串的位置
xytext=(+30,-30):字符串的位置是相对于(x0,y0)的往右30个单位,往下30个单位。

Matplot基本使用相关推荐

  1. Matplot pyplot绘制单图,多子图不同样式详解,这一篇就够了

    Matplot pyplot绘制单图,多子图不同样式详解,这一篇就够了 1. 单图单线 2. 单图多线不同样式(红色圆圈.蓝色实线.绿色三角等) 3. 使用关键字字符串绘图(data 可指定依赖值为: ...

  2. 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析

    使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析 1. 效果图 2. 原理 3. 源码 3.1 直方图3种计算方法和2种绘制方法 3.2 Mask遮罩图像直方图 参考 这篇博客将 ...

  3. Python、Matplot的subplot实现一行3列的子图绘制,并添加背景色

    Python.Matplot的subplot实现一行3列的子图绘制,并添加背景色 1. 可能遇到的问题 2. 示例 1)绘制2*2(俩行俩列)的子图,并设置背景色 2) 绘制1*3(一行三列)的子图, ...

  4. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  5. opencv 采用 matplot 显示图片

    opencv 采用 matplot 显示图片 import numpy as np import cv2 from matplotlib import pyplot as pltimg=cv2.imr ...

  6. PythonGIS可视化—Matplot basemap工具箱

    原文链接:http://www.douban.com/group/topic/32821988/ 原文链接:http://www.cnblogs.com/vamei/archive/2012/09/1 ...

  7. python制作等高线云图,matplot 画等高线图

    matplot 除了可以画比较简单的图之外,还可以类似于等高线这样的图.在机器学习里面可以用于可视化分类的效果,比如在可视化svm分类的时候,就可以这样的方式去画图,在可视化上往往会有很好的效果. 代 ...

  8. python2.7安装scipy_在centOS上离安装Python2.7以及numpy,scipy,matplot,sklearn等

    〇.由于是离线安装.提前下载各种包 大概会用到的包如下图 一.安装python2.7.9 ./configure --prefix=/usr/local make && make al ...

  9. python matplot模块

    先将matplot模块导入,并缩写: import matplotlib as mpl 有时候只需要其中的一部分: import matplotlib.pyplot as plt 二维图: 折线图pl ...

  10. Python matplot画散列图

    同matlab一样,matplot也可画散列图scatter. 1 import numpy as np 2 import matplotlib.pyplot as plt 3 #fig = plt. ...

最新文章

  1. [js] MD5算法
  2. 用Javascript模拟微信飞机大战游戏
  3. AngularJS学习篇(十九)
  4. RegEnumValue枚举注册表值小记
  5. 【转】ofbiz数据库表结构设计
  6. 桩位编号插件xzbh_饶平专业泵站基坑拉森钢板桩施工规范
  7. 3DTouch - iOS新特性
  8. centos7 nginx php5.4,详解CentOS7.0下Nginx+PHP5.4+MySQL5.5+Memcached+Redis的架构部署
  9. opencv函数medianBlur( );
  10. 把握今生 不要期待来世
  11. 解决idea的程序包错误:程序包XXX不存在的问题
  12. 37-基于51单片机智能温控风扇设计
  13. 【软件工程】——项目开发计划
  14. Android开发工程师已难找工作
  15. 最通俗易懂的JavaScript进阶教程
  16. sqlserver笔记
  17. AfxGetThreadState 与 _AFX_THREAD_STATE 剖析
  18. SaaS行业持续升温,这里有你想了解的SaaS云服务优势
  19. 以matlab为基础数学分析,matlab与数学分析.docx
  20. 欧美零售商的全渠道实践

热门文章

  1. python bytearray 的使用
  2. 百度网盘的大数据应用案例
  3. Hadoop基础命令的使用
  4. 读MBA经历回顾(上)目的决定手段——北漂18年(48)
  5. 饭局上领导说“我的酒你敢不喝”,别说“我过敏”,这3句话管用
  6. js 中是否需要使用分号
  7. 将el-table表格的合计行放到首行
  8. 高频线子电路 (不含绪论部分)
  9. Python 学习爬虫
  10. 滴滴、哈啰的两封信:顺风车从业者一定要有行业的敬畏之心