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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

北航软件工程硕士_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?」 很明显,没有…

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)的主要挑战是如何恢复微小纹理等高频细节。然而,大多数最…

义教志愿服务系统c语言,[志愿服务]以己为师 东科学子义教传爱心

为积极响应国家教育计划,丰富孩子们的暑期生活,进一步落实“春泥”课堂先进义教理念,7月12日,浙江海洋大学东海科学技术学院大学生“海岛征程十五载,红色基因永传承”赴蚂蚁岛实践团23名队员走进蚂蚁岛文化礼堂&#x…

java可视化压缩_WEB可视化技术发展

EverCraft一直在关注Web可视化技术的发展,本文对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report in Web-based Visualization. COMPUTER GRAPHICS…

wordpress phpmyadmin_西部数码使用指南:虚拟主机WordPress部署SSL注意事项

版权归西部数码所有,原文链接:https://www.west.cn/faq/list.asp?unid2068注意事项:1.如果您的主题/插件使用绝对地址调用了http请求可能会导致网站打开会乱码,或不能有绿锁标识,需要联系程序提供商将所有http请求修改…

android html转pdf工具,android – 使用iText库将html转换为pdf时未应用hr的内联CSS

我是.NET开发人员,因此代码在C#中.但是你应该能够轻松翻译以下内容.iText是一个PDF优先的库,[X] HTML解析非常复杂,因此在这方面并不完整.每当解析[X] HTML并且事情不按预期的方式进行特定标记时,您应遵循的基本步骤是:>验证XML Worker支持标记:Tags …

python 小说爬虫_从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载

从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载Ehco 5 个月前 本来只是准备做一个爬起点小说名字的爬虫,后来想了一下,为啥不顺便把小说的内容也爬下来呢?于是我就写了这个爬虫,他爬下了各类小说排行榜上…

java 某个字符在字符串中出现的所有位置_Java面试常考核心概念

这篇文章专注于Java基础知识,不涉及List、Map、多线程、锁相关的内容,需要的可以查看我的其他博客hofes blog​hhf443.github.ioJDK&JRE&JVMJDK(Java Development Kit)是针对 Java 开发员的产品,是整个 Java 的…

lan交换和无线教师手册_简单几步,无线路由器变交换机

当原来的路由器lan口不够用,可以加一个交换机扩展lan口数量,如果需要增加的lan口数量不超过3个可以考虑找台不用的无线路由器当交换机用。另外,随着交换机更新家中都有旧无线路由器闲置,完全可以再次利用。下面看一下,…

revit找不到附加模块程序集_TensorFlow基础知识——常用模块(一)

1本节简述对于开展深度学习开发的目标而言,我们需要掌握的除了必要的深度学习理论基础、必要的开发依赖库基础知识、基本的开发套路之外,我们还需要掌握它常见的外围小帮手都有哪些。这些小帮手就是深度学习依赖库中的其他并不是核心的模块,但…

99 网络编程_网络工程师技能图谱,看看你会多少技能

技术推动了时代变革,互联网则加速了这场变革。在蓬勃发展的互联网浪潮下,网络作为基础设施的关键纽带保障着网路流量的顺利流通,维持着赛博世界的繁荣。而在这繁荣之下,生存着这样一个群体——网络工程狮,为网络纽带保…

python 3.8.0安卓_Python for Mac v3.8.0 官方最新版

Python for Mac是一款全新推出的编程工具,所有 python.org macOS 安装程序都附带了 OpenSSL 的内置副本。此外,还有一个针对 macOS 10.9 的新增安装程序变体,其中包含 Tcl / Tk 8.6的内置版本,有需要的朋友快来下载试试吧!Python …