Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python matplotlib函数备忘

python matplotlib函数备忘

作者头像
羽翰尘
修改于 2019-11-26 09:07:28
修改于 2019-11-26 09:07:28
1.1K0
举报
文章被收录于专栏:技术向技术向

本文由腾讯云+社区自动同步,原文地址 https://cloud.tencent.com/developer/article/1540859

1 简介

matplotlib是python中一个非常好用的画图库,倾向于使用数据画图,设计思路与matlab中的plot相同。

1.1 画图与保存

1.1.1 无显示器画图

ssh远程操作 出现RuntimeError: Invalid DISPLAY variable

添加如下代码

代码语言:txt
AI代码解释
复制
plt.switch_backend('agg')

参考页面

1.1.2 保存图像

使用plt.savefig

代码语言:txt
AI代码解释
复制
import matplotlib.pyplot as plt
plt.savefig("filename.png")
plt.show()

注意savefig必须在show之前调用,否则show之后默认开新图,保存的图一片空白

或者,使用gcf方法

代码语言:txt
AI代码解释
复制
fig = plt.gcf()
plt.show()
fig1.savefig('test.jpg', dpi=100)

1.1.3 图像格式

在plt.savefig()方法中增加format=参数

可选的参数如下:

  • jpg
  • png
  • pdf
  • eps
  • svg

完整的调用方法为

plt.savefig('file_name', format='jpg')

如果不指定format,默认为jpg格式,与文件的后缀名无关

1.1.4 设置图像dpi

代码语言:txt
AI代码解释
复制
plt.savefig(..., dpi=150)

1.1.5 直接获取bin图像流

服务器环境,或者特定环境下,我们不建议用文件来交换画图结果,更希望函数直接返回一个二进制的图像文件。

代码语言:txt
AI代码解释
复制
import matplotlib.pyplot as plt
import io
from PIL import Image 
# ... plot something
canvas = plt.get_current_fig_manager().canvas
canvas.draw()
buf, size = canvas.print_to_buffer()
image = Image.frombuffer('RGBA', size, buf, 'raw', 'RGBA', 0, 1)
buffer = io.BytesIO()
image.save(buffer,'PNG')
data = buffer.getvalue()

1.2 画图增强

1.2.1 画多个子图

共享x y轴的意思是,多张图是否使用同一个单位刻度,共享后只会在最左边的y轴和最下边的

x轴标出数字,其他轴只有单位刻度。

代码语言:txt
AI代码解释
复制
import numpy as np 
import matplotlib.pyplot as plt 
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)
# 不共享y轴
f, (ax1, ax2) = plt.subplots(1, 2, sharey=False)
ax1.plot(x, y)
ax1.set_title('Not sharing Y axis')
ax2.scatter(x, y)
# 共享y轴
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)
plt.show()

Creates four polar axes, and accesses them through the returned array

代码语言:txt
AI代码解释
复制
>>> fig, axes = plt.subplots(2, 2, subplot_kw=dict(polar=True))
>>> axes[0, 0].plot(x, y)
>>> axes[1, 1].scatter(x, y)

1.2.2 增加子图的title

代码语言:txt
AI代码解释
复制
ax.set_title('Simple plot')

参考

1.2.3 画grid

代码语言:txt
AI代码解释
复制
plt.grid(True, color='grey', linestyle='-', linewidth=1)

1.2.4 关闭坐标刻度

代码语言:txt
AI代码解释
复制
plt.xticks([])
plt.yticks([])

1.2.5 关闭坐标轴

整个坐标系统都不见了,只剩下曲线

代码语言:txt
AI代码解释
复制
plt.axis('off')

1.2.6 坐标轴不可见

代码语言:txt
AI代码解释
复制
frame = plt.gca()
frame.axes.get_yaxis().set_visible(False)
frame.axes.get_xaxis().set_visible(False)

1.2.7 画图例

代码语言:txt
AI代码解释
复制
plt.figure()
plt.plot(data['loss100'])
plt.plot(data['loss300'])
plt.plot(data['loss600'])
plt.title("Compare loss(different lr)") 
plt.xlabel("step")
plt.ylabel("loss")
plt.legend(['lr=0.01', 'lr=0.3', 'lr=0.6'])

画图例参考 (这个是官方教程,但是无法画出图例,姑且列上等以后研究)

2. 其他常用常数

2.1 格式化输出

  1. 使用百分号
代码语言:txt
AI代码解释
复制
print('hello %s%.4f' %('str', 5.0)) 
  1. 使用format
代码语言:txt
AI代码解释
复制
print('hello {:.4f}/{:.5f} {}'.format(5,6,'str')) 

2.2 zip函数

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

代码语言:txt
AI代码解释
复制
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Matplotlib 学习笔记
在 matplotlib 中,整个图像为 Figure ,而一个 Figure 中可以有多个 axes。
zucchiniy
2020/05/22
5950
深度学习基础之matplotlib,一文搞定各个示例
Matplotlib 是 Python 的绘图库。它可与 NumPy 一起使用 ,Matplotlib也是深度学习的常用绘图库,主要是将训练的成果进行图形化,因为这样更直观,更方便发现训练中的问题,今天来学习下,走起!!
香菜聊游戏
2021/10/19
1.7K0
深度学习基础之matplotlib,一文搞定各个示例
matplotlib入门
MATlAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、量化金融与风险管理、机器人,控制系统等领域。MATLAB在数值计算方面首屈一指,也是使用最广泛的科研绘图软件之一。优点:编程效率高 便于矩阵计算。缺点:循环效率低 封装性不好。
IT从业者张某某
2022/11/12
4.8K0
matplotlib入门
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
在实际的应用场景中,我们不仅需要在程序中展示图表,有时候还需要将这些图表保存为文件,以便在其他地方使用,比如插入文档、报告或网页中。matplotlib 提供了非常方便的保存图表功能。
半截诗
2024/10/09
1.2K0
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
Matplotlib 基础
Matplotlib 是一个 Python 绘图库,可以跨平台生成各种硬拷贝格式和交互式环境的出版品质数据。
iOSDevLog
2019/05/28
2.1K0
(七)Python绘图基础:Matplotlib绘图
        除了使用scatter函数之外,还可以使用plot函数后加参数'o'来实现,代码如下所示:
小点点
2022/12/12
2.3K0
(七)Python绘图基础:Matplotlib绘图
数据可视化 | 手撕 Matplotlib 绘图原理(一)
本文内容适合入门及复习阅读,绘图所需的基本知识均有涉及,内容较多,由于篇幅限制,故分成两部分。
数据STUDIO
2021/06/24
4.2K0
python数据可视化系列教程——matplotlib绘图全解
matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。
全栈程序员站长
2022/07/02
3.5K0
python数据可视化系列教程——matplotlib绘图全解
【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)
matplotlib的图像都位于Figure对象中,你可以用plt.figure创建一个新的Figure.在subplot上进行绘制
汀丶人工智能
2022/12/21
1.9K0
【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)
干货|教你一文掌握:Matplotlib+Seaborn可视化
Seaborn和Matplotlib是Python最强大的两个可视化库。Seaborn其默认主题让人惊讶,而Matplotlib可以通过其多个分类为用户打造专属功能。
1480
2020/03/09
5K0
干货|教你一文掌握:Matplotlib+Seaborn可视化
我的机器学习matplotlib篇导入画出第一个图形颜色,标记,线型刻度、标题、标签和图例!创建子图
前言: matplotlib是python最常用的绘图库,能帮你画出美丽的各种图 导入 包含了中文显示,屏外显示 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np %matplotlib tk #解决中文不显示问题 mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False 画出第
DC童生
2018/04/27
1.6K0
我的机器学习matplotlib篇导入画出第一个图形颜色,标记,线型刻度、标题、标签和图例!创建子图
Matplotlib
请注意,本文编写于 980 天前,最后修改于 976 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1K0
Matplotlib
纯干货:手把手教你用Python做数据可视化(附代码)
导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一。可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转换,或者为建模提供一些想法。对于其他人来说,构建网络交互式可视化可能是最终目标。Python有很多附加库可以用来制作静态或动态的可视化文件,但是我将主要关注matplotlib和以它为基础的库。
IT阅读排行榜
2018/09/29
5.3K0
纯干货:手把手教你用Python做数据可视化(附代码)
matplotlib安装及使用
matplotlib是基于python语言的开源项目,旨在为python提供一个数据绘图包。我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图。实际上,matplotlib的对象体系严谨而有趣,为使用者提供了巨大的发挥空间。用户在熟悉了核心对象之后,可以轻易的定制图像。matplotlib的对象体系也是计算机图形学的一个优秀范例。即使你不是python程序员,你也可以从文中了解一些通用的图形绘制原则。matplotlib使用numpy进行数组运算,并调用一系列其他的python库来实现硬件交互。matplotlib的核心是一套由对象构成的绘图API。
狼啸风云
2023/10/07
6780
matplotlib安装及使用
超硬核的 Python 数据可视化教程!
python中最基本的作图库就是matplotlib,是一个最基础的Python可视化库,一般都是从matplotlib上手Python数据可视化,然后开始做纵向与横向拓展。
龙哥
2020/09/04
5.3K0
超硬核的 Python 数据可视化教程!
Matplotlib库
Matplotlib 是 Python 中非常流行且广泛使用的数据可视化库,主要用于创建各种类型的图表和图形。它提供了丰富的绘图功能,支持静态、动态和交互式的图表。以下是关于 Matplotlib 的基础知识总结:
用户11315985
2024/10/16
1K0
Matplotlib库
《利用Python进行数据分析·第2版》第9章 绘图和可视化9.1 matplotlib API入门9.2 使用pandas和seaborn绘图9.3 其它的Python可视化工具9.4 总结
信息可视化(也叫绘图)是数据分析中最重要的工作之一。它可能是探索过程的一部分,例如,帮助我们找出异常值、必要的数据转换、得出有关模型的idea等。另外,做一个可交互的数据可视化也许是工作的最终目标。Python有许多库进行静态或动态的数据可视化,但我这里重要关注于matplotlib(http://matplotlib.org/)和基于它的库。 matplotlib是一个用于创建出版质量图表的桌面绘图包(主要是2D方面)。该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MA
SeanCheney
2018/04/24
7.8K0
《利用Python进行数据分析·第2版》第9章 绘图和可视化9.1 matplotlib API入门9.2 使用pandas和seaborn绘图9.3 其它的Python可视化工具9.4 总结
Python数据分析Matplotlib
1.2 使用matplotlib.pyplot中的annotate()函数标注文字
荣仔_最靓的仔
2021/02/02
3.7K0
Python数据分析Matplotlib
网友需求系列01-Python-matplotlib定制化刻度(主副)绘制
今天我们开始「粉丝要求绘图系列」的第一篇推文 ,这个系列我会筛选出需求较多的一类图进行绘制讲解,当然,绘图的数据我们尽可能的全部分享出来(即使涉及一些论文数据,我们也会根据情况进行虚构处理的),本期的推文重要涉及的知识点如下:
DataCharm
2021/02/22
1.7K0
网友需求系列01-Python-matplotlib定制化刻度(主副)绘制
12个最常用的matplotlib图例 !!
折线图(Line Plot):用于显示数据随时间或其他连续变量的变化趋势。在实际项目中,可以用于可视化模型性能随着训练迭代次数的变化。
JOYCE_Leo16
2024/03/19
9130
12个最常用的matplotlib图例 !!
推荐阅读
相关推荐
Matplotlib 学习笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档