用matplotlib画线
1:matplotlib基础
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形[1] 。
通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
Matplotlib基础知识
1.Matplotlib中的基本图表包括的元素
x轴和y轴
水平和垂直的轴线
x轴和y轴刻度
刻度标示坐标轴的分隔,包括最小刻度和最大刻度
x轴和y轴刻度标签
表示特定坐标轴的值
绘图区域
实际绘图的区域
2.hold属性
hold属性默认为True,允许在一幅图中绘制多个曲线;将hold属性修改为False,每一个plot都会覆盖前面的plot。
但是目前不推荐去动hold这个属性,这种做法(会有警告)。因此使用默认设置即可。
3.网格线
grid方法
使用grid方法为图添加网格线
设置grid参数(参数与plot函数相同)
.lw代表linewidth,线的粗细
.alpha表示线的明暗程度
4.axis方法
如果axis方法没有任何参数,则返回当前坐标轴的上下限
5.xlim方法和ylim方法
除了plt.axis方法,还可以通过xlim,ylim方法设置坐标轴范围
6.legend方法
两种传参方法:
2:代码演示
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> import pandas as pd
>>> nd= np.linspace (0,10,10)
>>> plt.plot(nd)
[<matplotlib.lines.Line2D object at 0x000000001331BDD8>]
>>> plt.show()

>>> nd1= np.linspace (0,100,50)
>>> plt.plot(nd1)
[<matplotlib.lines.Line2D object at 0x0000000013449C88>]
>>> plt.show()
>>> nd1= np.linspace (0,100,50)#从0开始Y为100x为50
>>> #下面是一种在一个图里面绘制多个线的方法
>>> x=np.arange (0,10,1)
>>> plt.plot(x,x*2)
[<matplotlib.lines.Line2D object at 0x00000000140F0DA0>]
>>> plt.plot(x,x/2)
[<matplotlib.lines.Line2D object at 0x00000000140F0E48>]
>>> plt.plot(x,x**2)
[<matplotlib.lines.Line2D object at 0x00000000140FC668>]
>>> plt.show()

>>> #另一种方法
>>> x=np.arange(0,10,1)
>>> plt.plot(x,x**2,x,5*x,x,x/3)
[<matplotlib.lines.Line2D object at 0x0000000013E246D8>, <matplotlib.lines.Line2D object at 0x0000000013E24CF8>, <matplotlib.lines.Line2D object at 0x0000000013E24DA0>]
>>> plt.show()
>>> #下面绘制网格线
>>> x=np.arange(-np.pi,np.pi,0.01)#把-3.14和3.14按0.01分成份
>>> plt.plot(x,np.sin(x))#正弦函数
[<matplotlib.lines.Line2D object at 0x0000000013733898>]
>>> plt.show()
>>> plt.plot(x,np.sin(x),x,np.cos(x))
[<matplotlib.lines.Line2D object at 0x0000000013423C50>, <matplotlib.lines.Line2D object at 0x0000000013423CF8>]
>>> plt.grid(True)#网格展示
>>> plt.show()

>>> #plt面向对象
>>> #创建对象
>>> #图形就是所谓的对象
>>> a=plt.subplot(1,3,1)#sub = 子,一行三列第一视图
>>> x=np.arange (-20,20,0.1)
>>> a.plot (x,np.sin(x))
[<matplotlib.lines.Line2D object at 0x000000001CA2CB00>]
>>> x2=np.arange (-20,20,1)
>>> a=plt.subplot(1,3,2)#sub = 子,一行三列第二视图
>>> a.plot (x2,np.sin(x2))
[<matplotlib.lines.Line2D object at 0x000000001CC88940>]
>>> x3=np.arange (-20,20,0.2)
>>> a=plt.subplot(1,3,3)#sub = 子,一行三列第三视图
>>> a.plot (x3,np.sin(x3))
[<matplotlib.lines.Line2D object at 0x000000001CD6D390>]
>>> plt.show()
>>> a.grid(color='g',linestyle='--',linewidth=2)
>>> plt.show()
>>> plt.show()
>>> a.plot (x3,np.sin(x3))
[<matplotlib.lines.Line2D object at 0x000000001CA2C978>]
>>> a.grid(color='g',linestyle='--',linewidth=2)#设置网格类型,颜色及线宽
>>> plt.show()
>>> #坐标轴界限
>>> #axis方法
>>> #如果axis方法没有任何参数,则返回当前坐标轴IDE上下限
>>> x=np.random.randn(10)
>>> plt.plot(x)
[<matplotlib.lines.Line2D object at 0x000000001C9CBE48>]
>>> plt.show()
>>> x=np.random.randn(20)
>>> plt.axis([-5,15,-5,10])
[-5, 15, -5, 10]#x的范围是-5到15而y的范围是-5到10
>>> plt.plot(x)
[<matplotlib.lines.Line2D object at 0x000000001D324E80>]
>>> plt.show()

>>> x=np.linspace(-5,5,100)
>>> plt.plot(x,np.tan(x))
[<matplotlib.lines.Line2D object at 0x000000001D5E85F8>]
>>> plt.axis('off')
(-5.5, 5.5, -214.01584316694965, 214.01584316694965)
>>> #off表示把坐标轴隐藏
>>> plt.show()

>>> #画圆
>>> plt.plot(np.sin(x),np.cos(x))
[<matplotlib.lines.Line2D object at 0x000000001D80EC88>]
>>> plt.show()
>>> plt.axis('equal')#使x轴和y轴的大小相等
(-0.05500000000000001, 0.05500000000000001, -0.05500000000000001, 0.05500000000000001)
>>> plt.plot(np.sin(x),np.cos(x))
[<matplotlib.lines.Line2D object at 0x000000001D5E8A90>]
>>> plt.show()

>>> #当然也可以设置figuresize设置标准圆
>>> #除了plt.axis方法,还可以通过xlim,ylim方法设置坐标轴范围
>>> y=np.arange(0,10,1)
>>> y
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> plt.plot(y)
[<matplotlib.lines.Line2D object at 0x000000001DC55A20>]
>>> plt.xlim(-2,12)
(-2, 12)
>>> plt.ylim(2,22)
(2, 22)
>>> plt.show()

>>> #坐标轴标签
>>> y=np.arange(0,10,2)
>>> x=y**2+5
>>> plt.xlabel('f(x)')
Text(0.5,0,'f(x)')
>>> plt.ylabel('x')
Text(0,0.5,'x')
>>> plt.ylabel('x',size=20)#设置字体大小
Text(0,0.5,'x')
>>> plt.plot(x,y)
[<matplotlib.lines.Line2D object at 0x000000001DAF54E0>]
>>> plt.show()
>>> #设置标题‘
>>> x = np.linspace(-np.pi,np.pi,100)
>>> plt.plot(x,np.sin(x))
[<matplotlib.lines.Line2D object at 0x000000001D5E8860>]
>>> plt.title('f(x)=sin(x)',fontsize=20)
Text(0.5,1,'f(x)=sin(x)')
>>> plt.show()

#下面是设置图标的两种方法
>>> y=np.arange(0,10,1)
>>> x=np.arange(0,10,1)
>>> plt.plot(x,x*1.5,x,x*2,x,x/2)
[<matplotlib.lines.Line2D object at 0x0000000013DEFAC8>, <matplotlib.lines.Line2D object at 0x0000000013DEFBA8>, <matplotlib.lines.Line2D object at 0x0000000013E21668>]
>>> plt.legend(['normal','fast','slow'])#为对应的线设置图标
<matplotlib.legend.Legend object at 0x0000000013E219E8>
>>> plt.show()
>>> #参数传递需要中括号
>>> plt.plot(x,x,label='normal')
[<matplotlib.lines.Line2D object at 0x00000000141994E0>]
>>> plt.plot(x,x**2,label='fast')
[<matplotlib.lines.Line2D object at 0x00000000141999B0>]
>>> plt.plot(x,x/2,label='slow')
[<matplotlib.lines.Line2D object at 0x0000000014199128>]
>>> plt.legend ()
<matplotlib.legend.Legend object at 0x0000000014175AC8>
>>> plt.show()

>>> plt.plot(x,x**2,label='_fast')#加上_使标签不显示
[<matplotlib.lines.Line2D object at 0x00000000138CFA58>]
>>> plt.show()
>>> plt.legend(['normal','fast','slow'],loc='upper_right')#loc设置图例的位置 ,可以设置的参数为 right center left upper right lower right best center lower left center right upper left upper center lower center
<matplotlib.legend.Legend object at 0x000000001C9BDFD0>
>>> plt.show()
>>>
用matplotlib画线的更多相关文章
- matplotlib画线(2)
这篇随笔是matplotlib画线的补充>>> #nocl参数控制图例中有几列,>>> import numpy as np>>> import ...
- Matplotlib学习---用matplotlib画箱线图(boxplot)
箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...
- 使用python pylab库 画线
pylab 提供了比较强大的画图功能,但是函数和参数都比较多,很容易搞混.我们平常使用最多的应该是画线了.下面,简单的对一些常用的划线函数进行了封装,方便使用. # -*- coding: utf-8 ...
- Python 的 Matplotlib 画图库
Matplotlib安装 NumPy库方便数值运算,但枯燥的数据并不利于人们的直观理解. 数据需要可视化. Matplotlib:一个数据可视化函数库 使用前需要安装 利用Python自带 ...
- MFC画线功能总结
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始 ...
- MFC消息映射机制以及画线功能实现
---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...
- CGContextRef 画线简单用法
CGContextRef CGContextMoveToPoint(context,150,50);//圆弧的起始点 CGContextAddArcToPoint(context,100,80,130 ...
- Android中Path类的lineTo方法和quadTo方法画线的区别
转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...
- C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9
视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...
随机推荐
- 在JDK 6和JDK 7的substring()方法的区别?
原文链接:https://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/ 在JDK 6和JDK 7中subs ...
- main方法的参数
敲例子的时候无意中把主方法的参数给落下了,当时没有发现,保存之后就去编译,运行了,通常情况下编译没有错误那胜利就在掌握之中了,没想到这次我竟然在"不一般"的行列中,编译无误,运行出 ...
- Ruby 打印
puts: 输出内容自动换行,转义后再输出(转义符),可传递多个参数puts("this is ge num=",a,"this is b=",b) pri ...
- 【转】BigInteger、BigDecimal详解
参考 http://lavasoft.blog.51cto.com/62575/228705/ 从Java4到Java5,Java对BigInteger.BigDecimal两个类功能一直再做扩展与改 ...
- LightOJ 1070 Algebraic Problem:矩阵快速幂 + 数学推导
题目链接:http://lightoj.com/volume_showproblem.php?problem=1070 题意: 给你a+b和ab的值,给定一个n,让你求a^n + b^n的值(MOD ...
- ffmpeg截取视频
ffmpeg -i ./suen071520.mp4 -vcodec copy -acodec copy -ss 00:55:00 -to 01:14:50 ./suen071520sp3.mp4-- ...
- [原创]Java给word中的table赋值
一.准备工作: 下载PageOffice for Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...
- zero to one (4)
复盘--天下武功唯快不破 There is no martial art is indefectible, while the fastest speed is the only way for lo ...
- MySQL11月16-11月21日活动赠送的优惠券使用率_20161124
一.11.16到21号活动规则是 单笔订单最高的金额划分客户为399,799,1599元三档 达标的分别赠送对应的优惠券 优惠券ID有标号区间 THEN "1599档" ELSE ...
- 【Lintcode】102.Linked List Cycle
题目: Given a linked list, determine if it has a cycle in it. Example Given -21->10->4->5, ta ...