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 plt

x = [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 plt

x = [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, 2003, 2004, 2005])
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 plt

x = [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, 2003, 2004, 2005])
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 plt

fig = 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 plt

fig = 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.边线

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>