文章目录
Matplotlib基本参数设置
1. 添加图标题,坐标轴标题,图例
添加图标题有plt.xlabel()和axes.set_xlabel()方法,添加坐标轴标题和图例也基本类似,其中注意的是绝大多数的 plt 函数都可以直接转换成 axes 方法(例如 plt.plot() → axes.plot()、 plt.legend() → axes.legend() 等),但是并非所有的命令都可以这样用。尤其是用来设置坐标轴上下限、坐标轴标题和图形标题的函数,它们大都稍有差别。一些 MATLAB 风格的方法和面向对象方法的转换如下所示:
- plt.xlabel() → axes.set_xlabel()
- plt.ylabel() → axes.set_ylabel()
- plt.xlim() → axes.set_xlim()
- plt.ylim() → axes.set_ylim()
- plt.title() → axes.set_title()
绘制包含图标题、坐标轴标题以及图例的图形,举例如下:
(1)使用plt.xlabel()方法:
代码一:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 20)
plt.xlabel("x") # 添加横轴名称
plt.ylabel("sin(x)") # 添加纵轴名称
plt.title("A Sine Curve") # 添加图形名称
plt.plot(x,np.sin(x))
plt.legend(["y = sin(x)"],loc=0) # 添加图例
结果:
(2)使用axes.set_xlabel() 方法
代码二:
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 20)
fig, axes = plt.subplots()
axes.set_xlabel('x label') # 横轴名称
axes.set_ylabel('y label') # 纵轴名称
axes.set_title('title') # 图形名称
axes.plot(x, x**2)
axes.plot(x, x**3)
axes.legend(["y = x**2", "y = x**3"], loc=0) # 图例
结果:
legend最常用的参数loc,用来设置图例的位置,其参数如下表:
2.添加坐标轴范围,画布网格
(1)使用plt.xlim()方法
代码一:
import matplotlib.pyplot as plt
import numpy as np
plt.xlim(-1,12) # 设置x轴的范围
plt.ylim(-2,2) # 设置y轴的范围
plt.plot(x,np.sin(x))
结果:
(2)使用 axes.set_xlim()方法
代码二:
import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,5))
axes[0].plot(x, x**2, x, x**3, lw=2)
axes[0].grid(True) # 显示网格
axes[1].plot(x, x**2, x, x**3)
axes[1].set_ylim([0, 60]) # 设置y轴范围
axes[1].set_xlim([1, 5]) # 设置x轴范围
结果:
3.添加图形标注
Matplotlib 中,文字标注的方法由 matplotlib.pyplot.text() 实现。最基本的样式为 matplotlib.pyplot.text(x, y, s),其中 x, y 用于标注位置定位,s 代表标注的字符串。
代码:
import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots()
x_bar = [10, 20, 30, 40, 50] # 柱形图横坐标
y_bar = [0.5, 0.6, 0.2, 0.7, 0.3] # 柱形图纵坐标
bars = axes.bar(x_bar, y_bar, color='red', label=x_bar, width=3) # 绘制柱形图
for i, rect in enumerate(bars):
x_text = rect.get_x() # 获取柱形图横坐标
y_text = rect.get_height() + 0.01 # 获取柱子的高度并增加 0.01
plt.text(x_text, y_text, '%.1f' % y_bar[i]) # 标注文字
结果:
4. 改变横坐标和纵坐标上的刻度(ticks)
xticks()函数原型:
xticks(ticks, [labels], **kwargs)
参数说明:
ticks:数组类型,用于设置X轴刻度间隔
[labels]:数组类型,用于设置每个间隔的显示标签
**kwargs:用于设置标签字体倾斜度和颜色等外观属性。
例如下图,X轴间隔2显示一个刻度,由ticks参数设置
X轴上的数字1、2、3、4、5就称为标签,具体显示内容由labels参数决定
原图如下:
代码:
import matplotlib.pyplot as plt
import numpy as np
x = [1,2,3,4,5]
y = [6,10,11,8,15]
plt.bar(x,y,width=0.5,align="center",color="r")
结果:
修改x轴的标签为1-5月的5个月份,y轴间隔为3的代码如下。
代码:
import matplotlib.pyplot as plt
import numpy as np
x = [1,2,3,4,5]
y = [6,10,11,8,15]
plt.xticks(x,["一月","二月","三月","四月","五月"],color='g',rotation=0 )#参数x控制X轴的间隔,第二个参数控制每个间隔显示的文本,后面两个参数控制标签的颜色和旋转角度
plt.yticks(np.arange(0,16,3))
plt.bar(x,y,width=0.5,align="center",color="r")
结果:
5.中文支持相关设置
(1)中文字体设置
- font.family 字体的名称
- SimHei 中文黑体
- FangSong 中文仿宋
- STSong 华文宋体
- Kaiti 中文楷体
- LiSu 中文隶书
代码如下:
mpl.rcParams["font.family"] = "SimHei"
(2)"-"(负号)特殊符号的相关设置
axes.unicode_minus 是否使用Unicode的负号,在支持中文显示状态下,需要设置为False。
代码如下:
mpl.rcParams["axes.unicode_minus"] = False
代码:
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.family"] = "SimHei" # 中文字体设置
mpl.rcParams["axes.unicode_minus"] = False # "-"(负号)特殊符号设置
plt.plot([-3, -1], [-1, -10], "r--")
plt.title("中文支持相关设置")
结果:
6.定义图形样式
plt.plot()函数用于对图形参数进行设置
plt.plot(x, y, format_string, **kwargs)
参数:
- x:x轴数据,列表或数组,可选
- y:y轴数据,列表或数组
- format_string:控制曲线的格式字符串,可选,由颜色字符、风格字符和标记字符组成。
- **kwargs:第二组或更多,(x,y,format_string)
颜色字符(color参数) | 说明 | 颜色字符 | 说明 |
---|---|---|---|
'b ’ | 蓝色 | ’m‘ | 洋红色magenta |
‘g’ | 绿色 | ’y‘ | 黄色 |
’r‘ | 红色 | ’k‘ | 黑色 |
’c‘ | 青绿色 cyan | ’w‘ | 白色 |
‘#008000’ | RGB某颜色 | ‘0.8’ | 灰度值字符串 |
风格字符(linestyle参数) | 说明 |
---|---|
‘-’ | 实线 |
‘–’ | 破折线 |
‘-.’ | 点划线 |
‘:’ | 虚线 |
标记字符(marker参数) | 说明 | 标记字符 | 说明 | 标记字符 | 说明 |
---|---|---|---|---|---|
‘.’ | 点标记 | ‘1’ | 下花三角标记 | ‘h’ | 竖六边形标记 |
‘,’ | 像素标记(极小点) | ‘2’ | 上花三角标记 | ‘H’ | 横六边形标记 |
‘o’ | 实心圈标记 | ‘3’ | 左花三角标记 | ‘+’ | 十字标记 |
‘v’ | 倒三角标记 | ‘4’ | 右花三角标记 | ‘x’ | x标记 |
‘^’ | 上三角标记 | ‘s’ | 实心方形标记 | ‘D’ | 菱形标记 |
‘>’ | 右三角标记 | ‘p’ | 实心五角标记 | ‘d’ | 瘦菱形标记 |
‘<’ | 左三角标记 | ‘*’ | 星形标记 | ‘I’ | 垂直线标记 |
常用参数
参数 | 含义 |
---|---|
alpha= | 设置线型的透明度,从 0.0 到 1.0 |
color= | 设置线型的颜色 |
fillstyle= | 设置线型的填充样式 |
linestyle= | 设置线型的样式 |
linewidth= | 设置线型的宽度 |
marker= | 设置标记点的样式 |
代码举例:
import matplotlib.pyplot as plt
plt.subplot(121)
plt.plot([6,2,9,13,-2],c="g",marker="v",ls="--")
plt.subplot(122)
plt.plot([-3,-1,5,8,12], [2,-6,10,6,9],c="r",marker="*",ls="-")
结果: