Matplot基本使用
基本流程
先介绍一下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() #显示(要有这个,才能最终显示出图片)
具体介绍
接下来具体介绍一下基本流程中用到的函数
- 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()出现。
- plt.plot()
plt.plot(x, y, color="red", linewidth=1, linestyle="--")
color: 指定画图的颜色,如“red”为红色。
linewidth: 指定线的粗细。
linestyle: 指定画出的样式,如“-”为实线, “--”为虚线。
其它设置
- 设置坐标轴的名字,范围,和间隔(包括将数字替换为其它文字)
#设置坐标轴的名字
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,如果字符串前后加$则会改变其样式。
- 设置坐标轴的位置
ax = plt.gca()#意为 get current axis,得到当前的坐标轴信息
ax.spines[“top"].set_color("none") #设置上边框颜色为白色
ax.spines[“right"].set_color("none") #设置右边框颜色为白色
- 设置坐标轴对应的框边
ax.xaxis.set_ticks_position("bottom") #设置横坐标轴对应下边框
ax.yaxis.set_ticks_position("left") #设置纵坐标轴对应左边框
- 设置坐标轴的位置
ax.spines["bottom"].set_position(("data", 0)) #设置下边框的位置在左边框的零刻度处
ax.spines["left"].set_position(("data", 0)) #设置左边框的位置在下边框的零刻度处
给图像做标注
- 给对应的绘制数据一个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"则为右上角
- 给图上的信息做标注
#先创建一个需要进行标注的点
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基本使用相关推荐
- Matplot pyplot绘制单图,多子图不同样式详解,这一篇就够了
Matplot pyplot绘制单图,多子图不同样式详解,这一篇就够了 1. 单图单线 2. 单图多线不同样式(红色圆圈.蓝色实线.绿色三角等) 3. 使用关键字字符串绘图(data 可指定依赖值为: ...
- 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析
使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析 1. 效果图 2. 原理 3. 源码 3.1 直方图3种计算方法和2种绘制方法 3.2 Mask遮罩图像直方图 参考 这篇博客将 ...
- Python、Matplot的subplot实现一行3列的子图绘制,并添加背景色
Python.Matplot的subplot实现一行3列的子图绘制,并添加背景色 1. 可能遇到的问题 2. 示例 1)绘制2*2(俩行俩列)的子图,并设置背景色 2) 绘制1*3(一行三列)的子图, ...
- Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...
- opencv 采用 matplot 显示图片
opencv 采用 matplot 显示图片 import numpy as np import cv2 from matplotlib import pyplot as pltimg=cv2.imr ...
- PythonGIS可视化—Matplot basemap工具箱
原文链接:http://www.douban.com/group/topic/32821988/ 原文链接:http://www.cnblogs.com/vamei/archive/2012/09/1 ...
- python制作等高线云图,matplot 画等高线图
matplot 除了可以画比较简单的图之外,还可以类似于等高线这样的图.在机器学习里面可以用于可视化分类的效果,比如在可视化svm分类的时候,就可以这样的方式去画图,在可视化上往往会有很好的效果. 代 ...
- python2.7安装scipy_在centOS上离安装Python2.7以及numpy,scipy,matplot,sklearn等
〇.由于是离线安装.提前下载各种包 大概会用到的包如下图 一.安装python2.7.9 ./configure --prefix=/usr/local make && make al ...
- python matplot模块
先将matplot模块导入,并缩写: import matplotlib as mpl 有时候只需要其中的一部分: import matplotlib.pyplot as plt 二维图: 折线图pl ...
- Python matplot画散列图
同matlab一样,matplot也可画散列图scatter. 1 import numpy as np 2 import matplotlib.pyplot as plt 3 #fig = plt. ...
最新文章
- [js] MD5算法
- 用Javascript模拟微信飞机大战游戏
- AngularJS学习篇(十九)
- RegEnumValue枚举注册表值小记
- 【转】ofbiz数据库表结构设计
- 桩位编号插件xzbh_饶平专业泵站基坑拉森钢板桩施工规范
- 3DTouch - iOS新特性
- centos7 nginx php5.4,详解CentOS7.0下Nginx+PHP5.4+MySQL5.5+Memcached+Redis的架构部署
- opencv函数medianBlur( );
- 把握今生 不要期待来世
- 解决idea的程序包错误:程序包XXX不存在的问题
- 37-基于51单片机智能温控风扇设计
- 【软件工程】——项目开发计划
- Android开发工程师已难找工作
- 最通俗易懂的JavaScript进阶教程
- sqlserver笔记
- AfxGetThreadState 与 _AFX_THREAD_STATE 剖析
- SaaS行业持续升温,这里有你想了解的SaaS云服务优势
- 以matlab为基础数学分析,matlab与数学分析.docx
- 欧美零售商的全渠道实践