在图例中显示红色和绿色方框,分别表示diffusion和cgan,怎样实现
时间: 2024-10-14 17:10:08 浏览: 24
要在图例中使用红色和绿色方框分别代表"diffusion"和"cgan",你可以使用matplotlib库中的`legend`函数,并结合`Patch`对象以及`prop_cycle`(颜色循环)来定制图例的标记。以下是具体的步骤:
1. 首先,你需要创建两个`Patch`对象,一个代表红色,另一个代表绿色。这可以通过`plt.Rectangle`或`mpl.collections.PatchCollection`来创建,例如:
```python
import matplotlib.patches as mpatches
red_patch = mpatches.Patch(color='red', label='diffusion')
green_patch = mpatches.Patch(color='green', label='cgan')
```
2. 接下来,在创建图例时,将这两个`Patch`对象作为`handles`参数传入:
```python
axs.legend(handles=[red_patch, green_patch], title="Models")
```
这里`title="Models"`可以根据需要设置图例标题。
如果你想要改变每个模型对应的图例标记的外观(如方形),可以直接使用`mpatches.Rectangle`并设置宽高为1或更小的数值,以便它看起来更像是一个方块。
```python
red_square_patch = mpatches.Rectangle((0, 0), 1, 1, color='red', label='diffusion')
green_square_patch = mpatches.Rectangle((0, 0), 1, 1, color='green', label='cgan')
```
然后替换`handles`部分即可。
阅读全文