Matplotlib 设置
# 导入相关模块
import matplotlib.pyplot as plt
import numpy as np
设置 figure
Matplotlib 绘制的图形都在一个默认的 figure 中,我们可以自己创建 figure,可以控制更多的参数,常见的就是控制图形的大小
plt.figure(figsize=(6, 3))
plt.plot(x, y)
plt.plot(x, y * 2)
plt.show()

设置标题
在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等
plt.plot(x, y)
plt.plot(x, y * 2)
plt.title("sin(x) & 2sin(x)")
plt.show()

设置坐标轴
- 通过 xlim 和 ylim 来限定坐标轴的范围,只能确定一个数值区间
- 通过 xlabel 和 ylabel 来设置坐标轴的名称
- 通过 xticks 和 yticks 来设置坐标轴的刻度
plt.plot(x, y)
plt.plot(x, y * 2)
plt.xlim((0, np.pi + 1))
plt.ylim((-3, 3))
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

plt.plot(x, y)
plt.plot(x, y * 2)
plt.xticks((0, np.pi * 0.5, np.pi, np.pi * 1.5, np.pi * 2))
plt.show()

设置 label 和 legend
为了区分出每个数据对应的图形名称
plt.plot(x, y, label="sin(x)")
plt.plot(x, y * 2, label="2sin(x)")
# plt.legend(loc=1)
plt.legend(loc='best')
plt.show()

图例的位置由 loc 关键字控制,其取值范围为 0-10,每个数字代表图表中的一处位置
添加注释
有时候我们需要对特定的点进行标注,我们可以使用 plt.annotate 函数来实现
这里我们要标注的点是 (x0, y0) = (π, 0)
我们也可以使用 plt.text 函数来添加注释
plt.plot(x, y)
x0 = np.pi
y0 = 0
# 画出标注点, s 代表点的大小
plt.scatter(x0, y0, s=50)
#添加文本
plt.text(0, -0.25, "y = sin(x)", fontdict={'size': 16, 'color': 'r'})
#添加注释
plt.annotate('sin(np.pi)=%s' %y0, xy=(np.pi, 0), xycoords='data', xytext=(+30, -30),textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))
plt.show()

对于 annotate 函数的参数,做一个简单解释:
- 'sin(np.pi)=%s' % y0 :标注的内容,可以通过字符串 %s 将 y0 的值传入字符串
- xycoords='data' :基于数据的值来选位置
- xytext=(+30, -30) 和 textcoords='offset points' :对于标注位置的描述 和 xy 偏差 \值,即标注位置是 xy 位置向右移动 30,向下移动30;
- arrowprops :对图中箭头类型和箭头弧度的设置,需要用 dict 形式传入。
使用子图
有时候我们需要将多张子图展示在一起,可以使用 subplot() 实现。即在调用 plot() 函数之前需要先调用 subplot() 函数。该函数的第一个参数代表子图的总行数,第二个参数代表子图的 总列数,第三个参数代表活跃区域
ax1 = plt.subplot(2, 2, 1) # (行,列,活跃区)
plt.plot(x, np.sin(x), 'r')
ax2 = plt.subplot(2, 2, 2, sharey=ax1) # 与 ax1 共享y轴
plt.plot(x, 2 * np.sin(x), 'g')
ax3 = plt.subplot(2, 2, 3)
plt.plot(x, np.cos(x), 'b')
ax4 = plt.subplot(2, 2, 4, sharey=ax3) # 与 ax3 共享y轴
plt.plot(x, 2 * np.cos(x), 'y')
plt.show()

可以看到,上面的每个子图的大小都是一样的。有时候我们需要不同大小的子图。比如将上面第一 张子图完全放置在第一行,其他的子图都放在第二行。
ax1 = plt.subplot(2,1,1)
plt.plot(x,np.sin(x),'r')
ax2 = plt.subplot(2,3,4)
plt.plot(x,2*np.sin(x),'g')
ax3 = plt.subplot(2,3,5,sharey=ax2)
plt.plot(x,np.cos(x),'b')
ax4 = plt.subplot(2,3,6,sharey=ax2)
plt.plot(x,2*np.cos(x),'y')

简单解释下, plt.subplot(2, 1, 1) 将图像窗口分为了 2 行 1 列, 当前活跃区为 1。
使用 plt.subplot(2, 3, 4) 将整个图像窗口分为 2 行 3 列, 当前活跃区为 4。
解释下为什么活跃区为 4,因为上一步中使用 plt.subplot(2, 1, 1) 将整个图像窗口分为 2 行 1 列, 第1个小图占用了第1个位置, 也就是整个第1行. 这一步中使用 plt.subplot(2, 3, 4) 将整个图 像窗口分为 2 行 3 列, 于是整个图像窗口的第1行就变成了3列, 也就是成了3个位置, 于是第2行的 第1个位置是整个图像窗口的第4个位置
中文乱码解决
需要配置下后台字体:
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
保存和显示图形
保存
保存绘制的图片,可指定图片的分辨率、边缘的颜色等
plt.savafig('存储文件名') # 记得加后缀,jpg/png 等
显示
在本机显示图形
plt.show
练习
画如下图形
sin(x*i) i = 0,...,4
cos(x*i) i = 0,...,4
exp(x*i)/3 i = 0,...,4
import matplotlib.pylab as plt
import numpy as np
plt.figure(figsize=(6,9))
x = np.linspace(0, 3, 100)
for i in range(5):
plt.subplot(3,1,1)
plt.plot(x,np.sin(x * i))
plt.subplot(3,1,2)
plt.plot(x,np.cos(x * i))
plt.subplot(3,1,3)
plt.plot(x,np.exp(x * i / 3))

Matplotlib 设置的更多相关文章
- matplotlib 设置图形大小时 figsize 与 dpi 的关系
matplotlib 中设置图形大小的语句如下: fig = plt.figure(figsize=(a, b), dpi=dpi) 其中: figsize 设置图形的大小,a 为图形的宽, b 为图 ...
- matplotlib设置颜色、标记、线条,让你的图像更加丰富
今天是数据处理专题的第11篇文章,我们继续来介绍matplotlib这个包的使用方法. 在上一篇文章当中我们介绍了matplotlib当中subplot的概念以及用法,今天我们将会来介绍matplot ...
- matplotlib 设置标题 xy标题等
import matplotlib.pyplot as plt import matplotlib as mpl baseclass=[1,2,3,4] name = ['class1','class ...
- matplotlib设置中文标签
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei']
- 自定义 matplotlib 设置
Customizing plots with style sheets import matplotlib as mpl 查看配置文件所在的目录:mpl.get_configdir() 1. 自定义 ...
- python matplotlib 设置x轴文本间隔显示(数字的话可以转为字符之后处理)
一个国际友人绘图遇到的问题,查了一手资料.主要参考的是这个老哥的做法(https://blog.csdn.net/wyquin/article/details/80508260) #totalSeed ...
- matplotlib 可视化 —— cmap(colormap)
color example code: colormaps_reference.py - Matplotlib 2.0.0 documentation 由其文档可知,在 colormap 类别上,有如 ...
- 数据分析之matplotlib使用
绘制折线图 参数详情 from matplotlib import pyplot as plt # 设置图片大小,dpi图片放大缩小时可以让其更清晰 plt.figure(figsize=(20,8) ...
- matplotlib学习日记(二)----图表组成练习
''' 将前面的知识进行练习 plot,scatter,legend等 ''' import matplotlib.pyplot as plt import numpy as np from matp ...
随机推荐
- 58同城AES签名接口分析
背景:需要获取58同城上面发布的职位信息,其中的包括职位的招聘要求,薪资福利,公司的信息,招聘者的联系方式.(中级爬虫的难度系数) 职位详情页分析 某个职位详情页的链接 https://qy.m.58 ...
- IDEA 学习笔记之 多线程调试
多线程调试: 在多线程调试的时候,发现一些断点会被跳过,让人很郁闷,然后上网查了下资料,发现是自己IDEA设置不对. 使用IDEA调试多线程的时候,IDEA的断点有不同的模式,只有当Thread模式下 ...
- 【Java】 读取Txt文件 处理数据
@RequestMapping("/importTxt") public String readTxtPoints(@RequestParam("file") ...
- 如何选择一款适合自己操作系统、Windows、Mac还是Linux?
如何选择一款适合自己操作系统.Windows.Mac还是Linux? 作者:我们都很努力着 简介:电脑已经逐渐离不开我们生活,但是如何选择一个我们最佳,最适合的电脑操作系统就成了一些困难选择人士的一个 ...
- vue常见问题随笔集
1.vuex操作对应关系 设置 触发/获取 action <-> dispatch mutations <-> commit getters <-> ...
- 直通BAT面试题库锦集
01 python面试题(汇总) 02 面向对象 03 网络和并发编程 04 模块 05 设计模式 06 前端 07 Django框架 08 Flask 09 tornado 10 DB
- bullet物理引擎与OpenGL结合 导入3D模型进行碰撞检测 以及画三角网格的坑
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11681069.html 一.初始化世界以及模型 /// 冲突配置包含内存的默认设置,冲突设置. ...
- 某CTF平台一道PHP代码注入
这道题以前做过但是没有好好的总结下来.今天又做了一下,于是特地记录于此. 首先就是针对源码进行审计: 关于create_function这个函数可以看一下这个:http://www.php.cn/ph ...
- Python+Tornado+Tampermonkey 获取某讯等主流视频网站的会员视频解析播放
近期,<哪吒之魔童降世>在各大视频软件可以看了,然而却是一贯的套路,非会员谢绝观看!!!只能从国内那些五花八门的视频网站上找着看了,或者通过之前本人说的 Chrome 的油猴插件,传送门 ...
- 如何在Java中创建数组列表
为了在Java中存储动态大小的元素,我们使用了ArrayList.每当添加新元素时,它会自动增加它们的大小.ArrayList实现Java的List接口和Java的Collection的一部分. 由于 ...