人的一生只有自己可以为自己设限,所以放开手脚尽管去做吧!
Python-matplotlib制图04-添加图名称和坐标轴名称
前言
1. 概述
学习如何给matplotlib绘制的图层加图名和坐标轴名称
2. 版本
2.1 山东青岛,2021年5月2日,Version 1
3. 参考资料
[1]. matplotlib官方文档
4. 微信公众号GISRSGeography
- 欢迎关注微信公众号GISRSGeography。
一、plt.title(),plt.xlabel(), plt.ylabel()方法
-
plt就是import matplotlib.pyplot as plt中的plt,运用plt的方法添加图名称,坐标轴名称时,在一个Figure对象中仅有一个Axes子对象时,比较方便。
-
在可以利用axes.set_title()等方法的地方,一般都可以运用plt.title()等方法
-
程序示例:
'''
1. 程序目的
(1) 增加图名和坐标轴名称
2. 山东青岛 2021年5月2日
'''
# 0. 包的导入
import numpy as np
import matplotlib.pyplot as plt
# 1. 创建绘图数据
data = {
'a': np.arange(50),
'c': np.random.randint(0,50,50),
'd': np.random.randn(50)
}
data['b'] = data['a'] + 10*np.random.randn(50)
data['d'] = np.abs(data['d']) * 100
# 2. 绘图
figure = plt.figure(figsize=(5,5))
plt.scatter('a','b',c='c',s='d',data=data)
plt.xlabel('entry a')
plt.ylabel('entry b')
plt.title('Scatter')
plt.show()
- 运行结果:
二、axes.set_title(),axes.set_xlabel(), axes.set_ylabel()方法
给制作的图添加图名,坐标轴名称要明确操作的对象【Python中一切皆对象】是axes【子图对象】还是figure【图形对象】,如果是axes则可以用axes对象后面加.set_title()等的方法添加图名等要素。
程序示例:
'''
1. 程序目的
(1) 增加图名和坐标轴名称
2. 山东青岛 2021年5月2日
'''
# 0. 包的导入
import numpy as np
import matplotlib.pyplot as plt
# 1. 创建制图数据
x = np.linspace(-2,2,100)
# 2. 绘图
# 2.1 图形对象创建
fig,axes = plt.subplots(figsize=(5,5)) # 创建一个图形对象和一个子图对象
axes.plot(x,x**3,label='cubic',linestyle='--') # axes对象绘图
# 2.2 axes对象添加图名称,坐标轴名称
axes.set_xlabel('x label')
axes.set_ylabel('y label')
axes.set_title('cubic line')
axes.legend() # 添加图例
plt.show()
运行结果如下:
三、综合利用“一”、“二”和plt.suptitle()的方法设置图名和坐标轴名称
- 同时绘制多幅图时,需要添加图名,可能会用到**plt.suptitle()**函数
- 绘制多幅图时,对于每幅图可以运用plt.xlabel()的方法也可以利用axes.set_xabel()的方法,但是个人觉得,为了逻辑清晰,建议每幅图运用自己的Axes对象的名称以.set_xlabel()的方法创建坐标轴名称,图名类似。
- 程序示例
'''
1. 程序目的
(1) 增加图名和坐标轴名称
2. 山东青岛 2021年5月2日
'''
# 0. 包的导入
import matplotlib.pyplot as plt
# 1. 创建绘图数据
names = list('ABC')
values = [1,10,100]
# 2. 绘图
figure = plt.figure(figsize=(9,3))
axes_1 = plt.subplot(131)
axes_1.bar(names,values)
axes_1.set_xlabel('Group')
axes_1.set_ylabel('Count')
#plt.xlabel('Group') # 不建议使用
#plt.ylabel('GDP')
axes_2 = plt.subplot(132)
axes_2.scatter(names,values)
axes_2.set_xlabel('Group')
#plt.xlabel('Group')
axes_3 = plt.subplot(133)
axes_3.plot(names,values,marker='*')
axes_3.set_xlabel('Group')
#plt.xlabel('Group')
plt.suptitle('Categorical Plotting')
plt.show()
- 运行结果:
总结
- plt.title(),plt.xlabel(), plt.ylabel()方法可以对当前操作的figure或者axes对象添加图名和坐标轴名称。
- .set_title(),.set_xlabel()和.set_ylabel()分别添加图名,x轴名称和y轴名称,需要依据操作的对象axes的名称确定其前缀。
- 同时创建多个axes对象,只添加一个图名时,需要用plt.suptitle()。