python plot画图_Python进阶之Matplotlib入门(四)

引言

Matplotlib是Python的画图领域使用最广泛的绘图库,它能让使用者很轻松地将数据图形化以及利用它可以画出许多高质量的图像,是用Python画图的必备技能。对于这个教程,大家最好亲自码一遍代码,这样可以更有收获。

前面的课程:

Python进阶之Matplotlib入门(一)

Python进阶之Matplotlib入门(二)

Python进阶之Matplotlib入门(三)

概要

1、掌握spine函数,学会通过设置颜色注释掉一些边;

2、掌握spine函数,学会通过设置位置改变坐标轴位置;

3、掌握legend函数,学会给不同的线做标注来区分。

图的脊柱spine

坐标轴线和上面的记号连在一起就形成了脊柱(英文叫Spines,一条线段上有一系列的刻度,是不是很像脊柱骨啊),它记录了数据区域的范围。它们可以放在任意位置,不过至今为止,我们都把它放在图的四边。

我们现在做一个实验,将四条脊柱的其中两条(上和右)设置为无色,看一下会有什么效果吧:

import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(5, 5))x = np.linspace(-np.pi, np.pi, 256)y1,y2 = np.cos(x), np.sin(x)plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-")plt.plot(x, y2, color="green", linewidth=1.0, linestyle="--")plt.xlim(-4, 4)plt.ylim(-1.5, 1.5)ax = plt.gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')plt.show()

这段代码的重点当然是:

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

其中gca的意思是Get Current Axes,获得当前坐标轴

其中spines['right']是指定一条边

而set_corlor('none')就是让它消失的技术。

运行结果:

7d86295a7fcc3f434dd2e755989ca52a.png

脊柱移动

在上一节我们利用颜色消失术将四个脊柱移除了两个,现在我们将移动剩下的脊柱:

import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(5, 5))x = np.linspace(-np.pi, np.pi, 256)y1,y2 = np.cos(x), np.sin(x)plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-")plt.plot(x, y2, color="green", linewidth=1.0, linestyle="--")plt.xlim(-4, 4)plt.ylim(-1.5, 1.5)ax =plt.gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')ax.spines['bottom'].set_position(('data',0))ax.spines['left'].set_position(('data',0))plt.show()

我们使用set_position函数将下面以及左边位置脊柱移到了x=0以及y=0的位置,形成了我们常见的坐标轴画法:

1e4f1b57819706f00bf6c287283e7c1c.png

图例标注

当一张图上面出现多条线的时候,我们就需要给这些线标注名字,比如我们的例子一直都是正弦和余弦函数,所以我们来用legend函数给两条线做一下标注:

import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(5, 5))x = np.linspace(-np.pi, np.pi, 256)y1,y2 = np.cos(x), np.sin(x)plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-", label="cosine")plt.plot(x, y2, color="green", linewidth=1.0, linestyle="--", label="sine")plt.xlim(-4, 4)plt.ylim(-1.5, 1.5)ax = plt.gca()ax.spines['right'].set_color('none'                            )ax.spines['top'].set_color('none')ax.spines['bottom'].set_position(('data',0))ax.spines['left'].set_position(('data',0))plt.legend(loc='upper left')plt.show()

其中,loc='upper left'是让标注文字出现在左上角:

3d97afe3361b6493f5ff3d50ae7d1952.png

更多关于plt.legend用法请参考这个网站:

https://matplotlib.org/3.1.1/tutorials/intermediate/legend_guide.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值