我有以下代码:

import matplotlib.pyplot as plt
from matplotlib.patches import Circle
import numpy as np
plt.yticks(np.arange(-10, 10.01, 1))
plt.xticks(np.arange(-10, 10.01, 1))
plt.xlim(-10,9)
plt.ylim(-10,9)
plt.gca().invert_yaxis()
# Set aspect ratio to be equal
plt.gca().set_aspect('equal', adjustable='box')
plt.grid()   
np.random.seed(40)
square = np.empty((10, 10), dtype=np.int_)
for x in np.arange(0, 10, 1):
    for y in np.arange(0, 10, 1):
        plt.scatter(x, y, color='blue', s=2, zorder=2, clip_on=False) 
for x in np.arange(0, 10, 1):
    for y in np.arange(0, 10, 1):
        value = np.random.randint(-3, 4)
        square[int(x), int(y)] = value

r1 = 3
circle1 = Circle((0, 0), r1,  color="blue", alpha=0.5, ec='k', lw=1)
r2 = 6
circle2 = Circle((0, 0), r2,  color="blue", alpha=0.5, ec='k', lw=1)
plt.gca().add_patch(circle1)
plt.gca().add_patch(circle2)

这表明:

enter image description here

然而,我想只有四分之一的圆圈是在x,y范围0至9被着色,其余的有一个白色的背景.

我怎么能做到这一点?

推荐答案

IIUC,您需要将圆圈替换为Wedges:

from matplotlib.patches import Wedge

r1 = 3
w1 = Wedge((0, 0), r1, 0, 90, color="blue", alpha=0.5, ec="k", lw=1)

r2 = 6
w2 = Wedge((0, 0), r2, 0, 90, color="blue", alpha=0.5, ec="k", lw=1)

plt.gca().add_patch(w1)
plt.gca().add_patch(w2)

enter image description here

Python相关问答推荐

从不规则形状区域返回使用openCV跟踪的对象的着陆位置

调查TensorFlow和PyTorch性能的差异

使用unmanagedexports从Python调用的c#DLC

有什么方法可以修复奇怪的y轴Python matplotlib图吗?

将嵌套列表的字典转换为数据框中的行

symy.分段使用numpy数组

如何让我的Tkinter应用程序适合整个窗口,无论大小如何?

在Python和matlab中显示不同 colored颜色 的图像

当密钥是复合且唯一时,Pandas合并抱怨标签不唯一

如何在BeautifulSoup中链接Find()方法并处理无?

Django管理面板显示字段最大长度而不是字段名称

如何避免Chained when/then分配中的Mypy不兼容类型警告?

对所有子图应用相同的轴格式

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

利用Selenium和Beautiful Soup实现Web抓取JavaScript表

将JSON对象转换为Dataframe

如何在Python中获取`Genericums`超级类型?

在嵌套span下的span中擦除信息

Pandas Data Wrangling/Dataframe Assignment

跳过嵌套JSON中的级别并转换为Pandas Rame