python热力图坐标轴外添加圆圈
时间: 2024-10-01 10:06:47 浏览: 24
在Python中,可以使用matplotlib库创建热力图,并通过mpl_toolkits.axes_grid1库中的inset_locator模块添加圆圈到坐标轴外部。以下是一个简单的步骤示例:
1. 首先,安装必要的库,如果还没有安装,可以使用pip安装:
```bash
pip install matplotlib mpl_toolkits.axes_grid1
```
2. 创建一个热力图,这里假设我们有一个二维数据数组`data`:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import inset_locator
# 示例数据
data = np.random.rand(10, 10)
fig, ax = plt.subplots()
im = ax.imshow(data, cmap='hot')
cbar = fig.colorbar(im, ax=ax)
```
3. 使用`inset_axes`函数在坐标轴外面添加一个圆形区域:
```python
# 定义圆心位置、半径以及新的子图大小
circle_position = (0.55, 0.65) # 圆心坐标
circle_radius = 0.07 # 半径
new_subplot_size = (0.1, 0.1) # 子图大小
# 添加圆圈
circle = inset_locator.inset_axes(ax, new_subplot_size,
loc=4, # 距离原图右下角的位置,注意这是inset_locator的编码
bbox_to_anchor=circle_position, # 圆心相对于主图的位置
bbox_transform=ax.transAxes, # 将坐标转换为主图的坐标系统
borderpad=0) # 边框距离
circle.add_artist(plt.Circle((0.5, 0.5), circle_radius, facecolor='white', edgecolor='black')) # 绘制圆
```
4. 最后显示图形:
```python
plt.show()
```
阅读全文