python plot函数_8个Matplotlib常用技巧,带你走进Python可视化!

0116646d65fb19ab7f82214da19fd69a.png

8个Matplotlib常用技巧,带你走进Python可视化!

前言

pandas的数据处理,基本功能都介绍完了。你都学会了吗?后面我会给大家介绍,数据处理的实战,用例子来把学过的知识点综合应用。这也是我学习Python的方法!数据处理还有一个重要的环节,那就是吧处理好的数据展示出来,对没错那就是我们的Python数据可视化。这篇文章主要介绍Matplotlib库的一些常用技巧。

导入Matplotlib

就像之前用np作为NumPy的简写形式、pd作为Pandas的简写形式一样,我们也可以在

导入 Matplotlib 时用一些它常用的简写形式。

import matplotlib.pyplot as plt

设置绘图样式

我们一般选用plt.style.use()来选择图形的绘图风格。‘classic’是Matplotlib的经典风格。

plt.style.use('classic')

将图形保存为图片

Matplotlib能将图形保存为不同的格式,使用savefig()命令将图形保存为文件。

fig= plt.figure()

plt.plot(x, np.sin(x), '-')

plt.plot(x, np.cos(x), '--')

flg.savefig('my_figure.png')

2a833b14b1d15602177b37f4eae67415.png

在savefig()函数里面,通过不同的扩展名,来决定你要保存图形的格式。Matplotlib支持许多图形格式,你可以通过canvas对象的方法,查看文件格式。

flg.canvas.get_supported_filetypes()

代码结果:

{'ps': 'Postscript',

'eps': 'Encapsulated Postscript',

'pdf': 'Portable Document Format',

'pgf': 'PGF code for LaTeX',

'png': 'Portable Network Graphics',

'raw': 'Raw RGBA bitmap',

'rgba': 'Raw RGBA bitmap',

'svg': 'Scalable Vector Graphics',

'svgz': 'Scalable Vector Graphics',

'jpg': 'Joint Photographic Experts Group',

'jpeg': 'Joint Photographic Experts Group',

'tif': 'Tagged Image File Format',

'tiff': 'Tagged Image File Format'}

Matplotlib两种画图接口

Matplotlib有两种不同的画图接口:一个是便捷的MATLAB风格接口,另一个是功能更强大的面向对象接口。

1.MATLAB风格接口

x= np.linspace(0, 10, 100)

flg= plt.figure() # 创建图形

创建两个子图中的第一个,设置坐标轴

plt.subplot(2, 1, 1) # (行、列、子图编号)

plt.plot(x, np.sin(x))

创建两个子图中的第二个,设置坐标轴

plt.subplot(2, 1, 2)

plt.plot(x, np.cos(x))

20f1a8fa96d5aa3b59d9da2113082e8b.png

这种接口特征是:它会持续跟踪“当前的”图形和坐标轴。虽然这个有状态的接口画起图来又快又方便,但是创建第二个子图时,怎么才能回到第一个子图呢?虽然用MATLAB风格接口也能实现,但未免过于复杂,有一种更好的方法!

2.面向对象接口

面向对象接口可以适应更复杂的场景,更好地控制你自己的图形。在面向对象接口中,画图函数不再受到当前“活动”图形或坐标轴的限制,而变成了显式的 Figure 和 Axes 的方法。

# 先创建图形网格

ax是一个包含两个Axes对象的数组

fig, ax= plt.subplots(2)

在每个对象上调用plot()方法

ax[0].plot(x, np.sin(x))

ax[1].plot(x, np.cos(x));

3ef843036b1d1c27bd2dd232a26c23cc.png

两种方法画简单图形时,选择那种绘制风格主要看个人喜好,不过在画复杂图形时,选择面对对象会好一些简易线形图。

绘制一个简单的图形

在所有图形中,最简单的图形应该就是线性方程y = f (x)的可视化了。要画Matplotlib图形时,都需要先创建一个图形fig和一个坐标轴ax。

import matplotlib.pyplot as plt

plt.style.use('seaborn-whitegrid')

import numpy as np

fig= plt.figure()

ax= plt.axes()

d640b8edad710d6301219f089d7a2daf.png

figure是plt.Figure类的一个实例,可以被看成是一个能够容纳各种坐 标轴、图形、文字和标签的容器。axes是plt.Axes类的一个实例是一个带有刻度和标签的矩形。我们通常用变量fig表示一个图形实例,用变量ax表示一个坐标轴实例或一组坐标轴实例。

fig= plt.figure()

ax= plt.axes()

x= np.linspace(0, 10, 1000)

ax.plot(x, np.sin(x))

创建好坐标轴之后,就可以用 ax.plot 画图了。怎么样可视化还是很简单吧!

f8341d765b8bf4629f764379cc564a50.png

调整图形:线条的颜色与风格

我们首先要调整的是:调整它线条的颜色与风格。一般使用plt.plot() 函数的color参数,它支持各种颜色值的字符串。

plt.plot(x, np.sin(x-0), color='blue')# 标准颜色名称

plt.plot(x, np.sin(x-1), color='g')# 缩写颜色代码(rgbcmyk)

plt.plot(x, np.sin(x-2), color='0.75')# 范围在0~1的灰度值

plt.plot(x, np.sin(x-3), color='#FFDD44')# 十六进制(RRGGBB,00~FF)

plt.plot(x, np.sin(x-4), color=(1.0,0.2,0.3))# RGB元组,范围在0~1

plt.plot(x, np.sin(x-5), color='chartreuse')# HTML颜色名称

7060e50de80517538a176fb7bb0459a9.png

linestyle调整线条的风格

plt.plot(x, x+0, linestyle='solid')

plt.plot(x, x+1, linestyle='dashed')

plt.plot(x, x+2, linestyle='dashdot')

plt.plot(x, x+3, linestyle='dotted');

你可以用下面的简写形式

plt.plot(x, x+4, linestyle='-') # 实线

plt.plot(x, x+5, linestyle='--') # 虚线

plt.plot(x, x+6, linestyle='-.') # 点划线

plt.plot(x, x+7, linestyle=':'); # 实点线

01e6d30205b0dabd1657a5220f40ffe6.png

如果你想用简单的方式,可以将 linestyle 和 color 编码组合起来,作为 plt. plot() 函数的一个非关键字参数使用

plt.plot(x, x+0, '-g') # 绿色实线

plt.plot(x, x+1, '--c') # 青色虚线

plt.plot(x, x+2, '-.k') # 黑色点划线

plt.plot(x, x+3, ':r'); # 红色实点线

81e9ae7022de30950c1c54b409952b64.png

调整图形:坐标轴上下限

Matplotlib会自动为你的图形选择最合适的坐标轴上下限,但是有时自定义坐标轴上下限可能会好。调整坐标轴上下限最基础的方法是 plt.xlim() 和 plt.ylim()

plt.plot(x, np.sin(x))

plt.xlim(-1, 11)

plt.ylim(-1.5, 1.5);

7acff401d1f05ca59ad9e6fb7c588159.png

plt.axis() 方法可以让你用一行代码设置x和y的限值

plt.plot(x, np.sin(x))

plt.axis([-1, 11, -1.5, 1.5])

[-1, 11, -1.5, 1.5]

5b4adcf7bfee54ef0a035e55fe4fe04f.png

设置图形标签

图形标题与坐标轴标题是最简单的标签,怎样快速设置呢?

plt.plot(x, np.sin(x))

plt.title("A Sine Curve")#设置一个标题

plt.xlabel("x")#设置x轴

plt.ylabel("sin(x)")#设置y轴

Text(0,0.5,'sin(x)')

人生苦短,我用python,python学习可以关注我们哦

c0cbc7686cb5fb6aabf2a1e9aaf24085.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值