python画图库哪个好_机器学习基础5--python画图库matplotlib(上)

图像是我们最直观的数据表达方式,python的matplotlib库可以用来画图。下面来简单总结下matplotlib的使用方法。

2018-09-05-marchine-learning-base-matplotlib-01-05.png

上篇讲matplot画图中用到的基础对象,包括图像Figure,平面曲线Line2D,坐标轴Axes,图例Legend, 注解Annotation, 注释Text

理解这些对象,有利于我们更好的用matplot画图。

matplotlib 导入1import matplotlib.pyplot as plt

简单demo1

2

3

4

5

6

7

8x = np.linspace(-1, 1, 50)

y = 2 * x + 1

# 创建图像

plt.figure()

# plot(x,y)画(x,y)曲线

plt.plot(x, y)

# 显示图像

plt.show()

2018-09-05-marchine-learning-base-matplotlib-01-01.png

基础属性

图像Figure

matplot中,图像对应的定义类是matplotlib.figure.Figure

1

2# num 标识编号,figsize 8英寸*5英寸,dpi图像的dp密度,facecolor背景色白色,edgecolor背景色白色

plt.figure(num=1, figsize=(8,5), dpi=100, facecolor='w', edgecolor='w')

plt.figure()创建了图像,并返回matplotlib.figure.Figure对象,这里我们选择隐式处理返回的对象。

平面曲线Line2D

通过plot()方法创建matplotlib.line.Line2D对象

1

2

3

4# 指定曲线的颜色,线的宽度,线的样式。

plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

# 添加多条曲线

plt.plot(x, y2)

具体的参数可以在matplotlib.pyplot.Line2D的初始化函数里找到:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21def __init__(self, xdata, ydata,

linewidth=None, # all Nones default to rc

linestyle=None,

color=None,

marker=None,

markersize=None,

markeredgewidth=None,

markeredgecolor=None,

markerfacecolor=None,

markerfacecoloralt='none',

fillstyle=None,

antialiased=None,

dash_capstyle=None,

solid_capstyle=None,

dash_joinstyle=None,

solid_joinstyle=None,

pickradius=5,

drawstyle=None,

markevery=None,

**kwargs

):

坐标轴Axes

坐标轴的定义类是matplotlib.Axes

1

2

3

4

5

6

7

8

9

10

11# xlim()和ylim()设置坐标轴范围

plt.xlim((-1, 2))

plt.ylim((-2, 3))

# xlabel()和ylabel()设置坐标轴名称

plt.xlabel('X')

plt.ylabel('Y')

# 借助numpy的linspace()方法,设置更复杂的坐标,-1到2,总共5个坐标点

new_ticks = np.linspace(-1, 2, 5)

plt.xticks(new_ticks)

# 也可以指定具体的点和标签值

plt.yticks(ticket=[-2, -1.8, -1, 1.22, 3],labels=[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

2018-09-05-marchine-learning-base-matplotlib-01-02.png

我们可以看到,这里二维图像默认的坐标轴有四条(上下左右)

更复杂的坐标轴设置:

1

2

3

4

5# 获取坐标轴实例

ax = plt.gca()

# 隐藏右边和上面的坐标轴

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

2018-09-05-marchine-learning-base-matplotlib-01-03.png

调整坐标轴上刻度的位置

1

2# 值可以选择top,bottom,both,default,none

ax.xaxis.set_ticks_position('bottom')

默认的坐标轴之间的连接处类似于矩形,我们可以调整坐标轴之间连接处具体的位置

1

2

3# spines指定修改的是哪一条坐标轴,set_position()有好几个重载方法,这里用到的是set_position(self, position),,其中position参数是一个二维tuple。

# 第一个值是type,可选的type有"outward","axes","data".

ax.spines['bottom'].set_position(('outward', 10))

『outward』数组的第二个值是个数值,0的话,x轴与y轴的焦点正好在y轴最底部,如果n>0,相当于向y轴负方向移动距离n。

『axes』 数组的第二个值取值范围0.0-1.0,表示将端点放在坐标轴的指定比例的位置

『data』 数组的第二个值就是坐标轴上具体的位置

图例Legend

图例对应着的是 matplot.legend类

1

2

3

4

5

6# 图例的话,需要先通过plot()方法创建Line2D对象

l1, = plt.plot(x, y1, label='linear line')

l2, = plt.plot(x, y2, color='red', linewidth=1.0, linestyle='--', label='square line')

# loc指定位置,如图例放在右上角就是loc='upper right', 'best'表示自动分配最佳位置,label表示图例的名称

plt.legend(handles=[l1, l2], labels=['up', 'down'], loc='best')

2018-09-05-marchine-learning-base-matplotlib-01-04.png

注解Annotation

注解对应着的是 matplot.text.Annotation

1

2

3

4

5

6

7

8

9plt.annotate(r'$2x+1=%s$' % y0,

xy=(x0, y0), # 对(1,3)这个点的描述

xycoords='data', # 基于数据的值来选位置

xytext=(+30, -30), # xytext=(+30, -30)表示xy偏差值,

textcoords='offset points',# 对标注位置的描述

fontsize=16,

arrowprops=dict( # 对箭头类型的设置

arrowstyle='->',

connectionstyle="arc3,rad=.2")

注释Text

注释对应的定义类是 matplot.text.Text

1

2

3

4

5

6

7

8plt.text(x=-3.7,

y=3,

s=r'$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$',

fontdict={

'size': 16,

'color': 'r'

}

)

通过上面的注释和注解,我们再补充一条线段,一个点

1

2

3

4

5# 画虚线

plt.plot([x0, x0, ], [0, y0, ], 'k--', linewidth=2.5)

# 画点

plt.scatter([x0, ], [y0, ], s=50, color='b')

plt.show()

2018-09-05-marchine-learning-base-matplotlib-01-05.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

64位 linux 32位连接器,32位汇编程序在64位Ubuntu上的汇编和连接

本教程使用的操作系统是Ubuntu Linux 18.04 LTS版本,汇编器是GNU AS(简称as),连接器是GNU LD(简称ld)。以下是一段用于检测CPU品牌的汇编小程序(cpuid2.s):.section .dataoutput:.asciz "The processor Vendor ID is %s\n".section…

python怎么加图片_python中如何保存图片

一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1、不开源,价格贵 2、软件容量大。一般3G以上,高版本甚至达5G以上。 3、只能做研究,不易转化成软件。python学习网,大…

linux用rsync实现同步,Linux下使用rsync实现主备机代码同步

rsync 分为客户端和服务端软件版本:rsync-2.6.9软件下载地址:http://rsync.samba.org/ftp/rsync/服务端安装过程1.tar -xzvf rsync-2.6.9.tar.gz #解压缩安装文件2.cd rsync-2.6.93. ./configure --prefix/usr/local/rsync #配置安装目录为/usr/local/…

python可以在多平台运行 体现了_Python:使用异常处理来判断运行的平台

try:importtermios, TERMIOS               1exceptImportError:try:importmsvcrt                  2exceptImportError:try:from EasyDialogs importAskPassword   3exceptImportError: getpass "default_getpass"      …

python精通时间_学Python需要多久能学会?精通Python需要多长时间?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 严格意思上的说,Python其实是一个脚本语言,编程语言多种多样,但是却有开源和闭源之分,Python就是一种开放核心源代码编程语言,其开发代码的效率非常高,代码编…

linux 文档编辑器 word,linux下vi编辑器命令大全

常用命令linux下vi编辑器命令大全来源:考试大 【学而优则进,考试大以成!】 2007年8月14日  文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi…

西门子触摸屏修改ip地址_基于博途V15 西门子S7-1200与触摸屏一个简单的例子

本篇是《基于博途V15 西门子S7-1200 ...》系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇。也请专业领域的大神批评指正。感谢大家关注与支持!步骤:1. 创建项目创建名称为PLC_HMI2. …

mac os和linux和安卓,在我的安卓手机里,安装Windows和macOS系统

原标题:在我的安卓手机里,安装Windows和macOS系统不知道各位差友还记不记得,世超前阵子分享过一款无需越狱,就能让 iPhone 和 iPad 运行其它系统的虚拟机软件 UTM。当时世超正是靠着这个软件,才得以让 iPad 成功跑上了…

python连接mysql代码_Python3连接MySQL(pymysql)转账代码

# coding:utf8 import sys # Python3 采用pymysql 连接MySQL import pymysql class TransferMoney(object): def __init__(self,conn): self.connconn def check_acct_available(self,acctid): cursor self.conn.cursor() try: sql"select * from account where acctid%s…

gc java root_C#技术漫谈之垃圾回收机制(GC)

GC的前世与今生虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所…

中信银行c语言笔试题库,中信银行笔试题型及题目

中信银行笔试题型及题目考试题型一:专业知识(2个小时)1.专业知识单选,60题,每题1分。2.专业知识多选,20题,每题1分,未选全即少选得0.5分,错选、漏选得0分。3.英语阅读,20分&#xff…

北航软件工程硕士_21考研择校 | 北京航空航天大学软件工程怎么样?

☝☝☝ 软件工程考研独家平台撰稿 | 康康哥编辑 | 丽丽姐本文由懂计算机、软件工程的博士师哥原创01学校名气北京航空航天大学,简称“北航”,是一所把“985”、“211”、“双一流”写进骨子里的学校。为什么这么说呢?这得从源头说起&#xff…

kettle同步数据到hive 巨慢_超详细教程,kettle ETL mysql到hadoop hive数据抽取,值得收藏...

那么如何将mysql数据导入到hive里呢,kettle里有自带方法,可以通过表输入和表输出来实现,不过自带的方法载入数据极其缓慢,不推荐使用这种方法。1、hive建表注意hive表使用“^”作为分隔符,这个可以更具实际情况来。2、…

linux 查看path文件,linux入门之环境变量与文件查找

环境变量分类当前 Shell 进程私有用户自定义变量,如上面我们创建的 temp 变量,只在当前 Shell 中有效。Shell 本身内建的变量。从自定义变量导出的环境变量。declare tmp;tmp"shiyanlou i love y";echo $tmp ; **不要忘记$**实验楼…

python手机编译器可以干什么_世界上最好的Python编辑器是什么?

在这种情况下,你需要使用一个 IDE(集成开发环境)或专用的代码编辑器。由于 Python 是最流行的编程语言之一,IDE 的选择也非常多。那么问题来了:「究竟什么样的 IDE 最适合 Python?」 很明显,没有…

c是过程化语言吗数据库,A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统...

A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统更多相关问题[填空题] 为了安全起见,起动发动机前要检查()有无行人。---叉车操作和保养手册第2-77.在起动叉车前()以警告周围的人。[单选] 制造厂规定叉车走合期一…

python读取xlsx文件pandas_用Python的pandas框架操作Excel文件中的数据教程

引言 本文的目的,是向您展示如何使用pandas来执行一些常见的Excel任务。有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其他地方找到的复杂功能同等重要。作为额外的福利,我将会进行一些模糊字符串匹配,以此来展示一…

delphi 生成 超大量xml_用OpenCV4实现图像的超分别率

用OpenCV4实现图像的超分别率本实验原文链接: f"https://arxiv.org/pdf/1807.06779.pdf">https://arxiv.org/pdf/1807.06779.pdf原文摘要单图像超分辨率(SISR)的主要挑战是如何恢复微小纹理等高频细节。然而,大多数最…

dubbo全局异常处理_基于spring aop的dubbo异常统一处理

dubbo统一异常处理,调用方只显示封装后的异常。1、返回封装后的Exception2、返回封装后的统一返回信息import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org.slf4j.Logger;import org.slf4j.LoggerFactory;impo…

python123平台作业答案第十一周_马哥2016全新Linux+Python高端运维班第十次作业

系统的INPUT和OUTPUT默认策略为DROP,请完成以下关于iptables的题目;iptables -A INPUT -d 10.18.11.13 -p tcp --dport 22 -j ACCEPT #允许ssh端口 iptables -A OUTPUT -s 10.18.11.13 -p tcp --sport 22 -j ACCEPT iptables -P OUTPUT DROP #设置OUTPUT…