Matplotlib绘图常用函数

109 阅读3分钟

1.设置边框

import matplotlib.pyplot as plt  
  
fig = plt.figure()  
ax = fig.add_axes([0.2, 0.2, 0.6, 0.6])  # (left, bottom, width, height)  
  
# 现在你可以在这个ax对象上绘图了  
ax.plot([1, 2, 3], [1, 4, 2])  
  
plt.show()

2.设置中文、负号、字体大小

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.size'] = 10

3.去除画布边框

# 去除边框 
plt.gca().spines['top'].set_color('none')
plt.gca().spines['right'].set_color('none')
plt.gca().spines['left'].set_color('none')
plt.gca().spines['bottom'].set_color('none')

4.常用函数

# 设置标题
plt.title('The effect of math scores on average scores') 
# 设置x轴标签
plt.xlabel('Average')
# 设置y轴标签
plt.ylabel('Math_Score')

5.设置图例

简单图例

# 添加图例  
plt.legend()  

设置图例位置

# 在图表的左上角添加图例  
plt.legend(loc='upper left')  

以下是一些常用的loc参数值及其描述:

  • 'best':自动选择最佳位置。
  • 'upper right':右上角。
  • 'upper left':左上角。
  • 'lower left':左下角。
  • 'lower right':右下角。
  • 'center left':左侧中间。
  • 'center right':右侧中间。
  • 'lower center':底部中间。
  • 'upper center':顶部中间。
  • 'center':中心。

定制图例

在这个示例中,我们使用了locfontsizeframealphatitle参数来定制图例的位置、字体大小、背景透明度和标题。

plt.legend(loc='upper right', fontsize=14, framealpha=0.8, title='Trigonometric Functions') 

6.设置下x,y轴轴距

单图

# 设置X轴和Y轴的范围  
plt.xlim(0, 10)  
plt.ylim(-1.5, 1.5)  

多图

fig, ax = plt.subplots() # 创建一个图表和坐标轴对象 

ax.set_xlim(0, 10) # 在Axes对象上设置X轴范围 
ax.set_ylim(-1, 1) # 在Axes对象上设置Y轴范围 
ax.set_xticks([0, 5, 10]) # 在Axes对象上设置X轴刻度 
ax.set_yticks([-1, 0, 1]) # 在Axes对象上设置Y轴刻度

7.文本标注

使用text()函数

text()函数允许你在图的任何位置添加文本。你需要指定文本的x和y坐标,以及要显示的文本内容。

import matplotlib.pyplot as plt 

# 假设你已经有了一个图形和轴(ax),如果没有则需要先创建它们 
fig, ax = plt.subplots() 

# 绘制一些数据(可选) 
ax.plot([1, 2, 3], [1, 4, 2]) 

# 在图上添加文本标注 
ax.text(2, 3, '这是文本标注', fontsize=12) # x=2, y=3 是文本的位置 

plt.show()

使用annotate()函数

annotate()函数与text()类似,但它还允许你添加箭头或其他指示来指向图中的特定点。

简单实例

import matplotlib.pyplot as plt 

# 假设你已经有了一个图形和轴(ax),如果没有则需要先创建它们 
fig, ax = plt.subplots() 

# 绘制一些数据(可选) 
ax.plot([1, 2, 3], [1, 4, 2], 'o-') 

# 使用annotate()添加带箭头的文本标注 
ax.annotate('这是带箭头的文本标注', xy=(2, 3), xytext=(3, 3.5), 
arrowprops=dict(facecolor='black', arrowstyle='->')) 

plt.show()

在上面的annotate()示例中,xy参数指定了箭头的目标位置(即文本指向的点),xytext参数指定了文本本身的位置。arrowprops字典用于定制箭头的属性。

复杂示例

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 

ax.plot([1, 2, 3], [4, 5, 6]) 

ax.annotate('annotate example', xy=(2, 5), xytext=(3, 6), arrowprops=dict(arrowstyle='->', 
connectionstyle='arc3,rad=0.2'), fontsize=12, color='red', ha='center', va='bottom', 
bbox=dict(facecolor='yellow', edgecolor='blue', boxstyle='round')) 

plt.show()

在这个示例中,annotate()函数在点(2, 5)处添加了一个注解文本,并通过箭头指向该点。注解文本的偏移量为(3, 6),箭头样式为'->',连接方式为arc3,rad=0.2的弧形连接,字体大小为12,颜色为红色,水平对齐方式为居中,垂直对齐方式为底部对齐,边框为圆角矩形,边框颜色为蓝色,填充颜色为黄色。