运行后报错 TypeError: ContourLabeler.clabel() got an unexpected keyword argument 'rotation'
时间: 2023-08-02 21:17:52 浏览: 339
很抱歉,`plt.clabel()`函数确实不支持`rotation`参数,我疏忽了。如果需要调整标注文本的朝向,可以使用`plt.text()`函数来手动添加标注文本,并通过`rotation`参数来设置文本的朝向。示例代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.linspace(-2, 2, 101)
y = np.linspace(-2, 2, 101)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 绘制等值线图
contour = plt.contour(X, Y, Z, 10, colors='k')
plt.clabel(contour, inline=True, fmt='%.2f', fontsize=10)
# 添加标注文本并设置朝向
for level in contour.levels:
for contour_path in contour.collections:
if contour_path.get_paths()[0].vertices[0][1] < -1.5: # 限制标注位置
continue
plt.text(*contour_path.get_paths()[0].vertices.mean(axis=0), f'{level:.2f}', ha='center', va='center', rotation=45)
# 显示图像
plt.show()
```
运行代码后,可以看到绘制了等值线图,并手动添加了标注文本,文本朝向为45度。可以调整`rotation`参数来改变文本的朝向。
阅读全文