300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Matplotlib基础(三)---- 图例标签 刻度 标题和边线

Matplotlib基础(三)---- 图例标签 刻度 标题和边线

时间:2019-08-29 08:49:42

相关推荐

Matplotlib基础(三)---- 图例标签 刻度 标题和边线

Matplotlib基础(三)---- 图例标签、刻度、标题和边线

在平时处理数据的时候,因为数据可视化更能显示数据的关系。而python中的matplotlib库很好地提供了我们2D绘图的方式。于是我打算系统且详细的学习matplotlib,并尽可能地总结各种用法。这个系列就是我我的学习经验总结。

上一篇我介绍了matplotlib中的图片和子图,还有subplot()subplots()两个方法的使用。

这一片主要了解图例

标签

而为了区分各个绘图元素, 在plot时可以,在里面传入label参数。

ax.plot(x, y1, label='one')ax.plot(x, y2, label='two')

接着再调用ax.legend()或plt.legend,就会自动生成图例

代码如下:

import matplotlib.pyplot as pltx = [0, 1, 2, 3, 4]y1 = [5, 6, 7, 8, 9]y2 = [0, 1, 2, 3, 4]fig = plt.figure(dpi=100)ax = plt.subplot(111)ax.plot(x, y1, label='one')ax.plot(x, y2, label='two')ax.legend(loc='best')plt.show()

输出图片如下:

legend方法有多个其他的位置参数loc。参考文档字符串(使用ax.legend?命令)获取更多信息。

loc参数告诉matplotlib在哪里放置图表。如果你不挑剔,'best’是个一个好选项,它会自动选择最合适的位置,如果取消图例中的元素,不要传入label参数或者传入label='_nolegend_'

刻度和范围

1.x轴或y轴的范围

plt.xlim([0, 10])plt.ylim([0, 10])

如果需要应用到最近创建的坐标系中,你需要改成以下的方式

ax.set_xlim([0, 10])ax.set_ylim([0, 10])

2.x轴或y轴的刻度

plt.xticks(x, [])plt.yticks(y, [])

如果需要应用到最近创建的坐标系中,你需要改成以下的方式

ax.set_xticks(x, [])ax.set_yticks(y, [])

具体例子如下:

import matplotlib.pyplot as pltx = [0, 1, 2, 3, 4]y1 = [5, 6, 7, 8, 9]y2 = [0, 1, 2, 3, 4]fig = plt.figure(dpi=100)ax = plt.subplot(111)ax.set_xticks(x, [2001, 2002, , , ])ax.set_xlim([0, 4])ax.set_ylim([0, 10])ax.plot(x, y1, label='one')ax.plot(x, y2, label='two')ax.legend(loc='best')plt.show()

输出图片如下

这里坐标原点是(0, 0)了,在没设置x,y的范围时,(0,0)并不是坐标系原点。

并且x=0的标签被修改成2001了,不如数值并没有被修改。

标题

设置坐标系的标题,代码如下:

ax.set_title('Unnamed')

设置x轴或y轴标题,代码如下:

ax.set_xlabel('year')ax.set_ylabel('income')

结合上面的代码:

import matplotlib.pyplot as pltx = [0, 1, 2, 3, 4]y1 = [5, 6, 7, 8, 9]y2 = [0, 1, 2, 3, 4]fig = plt.figure(dpi=100)ax = plt.subplot(111)ax.set_xticks(x, [2001, 2002, , , ])ax.set_xlim([0, 4])ax.set_ylim([0, 10])ax.set_title('Unnamed')ax.set_xlabel('year')ax.set_ylabel('income')ax.plot(x, y1, label='one')ax.plot(x, y2, label='two')ax.legend(loc='best')plt.show()

效果如下:

补充

1.如果需要设置上边线为x轴,右边线为y轴,

也就是把x轴刻度放在上边线,y轴刻度放在有边线

则需要以下修改:

import matplotlib.pyplot as pltfig = plt.figure()ax = plt.subplot(111)ax.xaxis.set_ticks_position('top')ax.yaxis.set_ticks_position('right')plt.show()

效果如下:

2. 如果需要修改刻度的颜色

# color为刻度颜色,colors为刻度标签文本颜色ax.xaxis.set_tick_params(color='green', colors='red')

效果如下:

边线(spine)

坐标系的边线和坐标轴是两个互相独立的个体,举个例子:

import matplotlib.pyplot as pltfig = plt.figure()ax = plt.subplot(111)ax.spines['left'].set_color('red')plt.show()

但是刻度却又依附在边线上,

添加以下代码

ax.spines['bottom'].set_position(('data', 0.2))

效果如下:

下边就被设置在0.2(注意传入参数为元组)上了,依附在上面的刻度也一起移动了。

总结

1.多个图例标签。

2.修改坐标系刻度和标签,和范围

4.设置标题

3.边线

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。