TypeError: ContourLabeler.clabel() got an unexpected keyword argument 'rotation'
时间: 2023-07-29 22:10:34 浏览: 190
很抱歉,我之前的回答有误,`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`参数来改变文本的朝向。
阅读全文