我有以下代码:

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相关问答推荐

我如何使法国在 map 中完全透明的代码?

OR—Tools CP SAT条件约束

梯度下降:简化要素集的运行时间比原始要素集长

如何在UserSerializer中添加显式字段?

将JSON对象转换为Dataframe

pandas在第1列的id,第2列的标题,第3列的值,第3列的值?

为什么np. exp(1000)给出溢出警告,而np. exp(—100000)没有给出下溢警告?

如何在BeautifulSoup/CSS Select 器中处理regex?

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

python sklearn ValueError:使用序列设置数组元素

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

需要帮助使用Python中的Google的People API更新联系人的多个字段'

如何设置nan值为numpy数组多条件

Python日志(log)库如何有效地获取lineno和funcName?

Pandas:计数器的滚动和,复位

如何在Python中从html页面中提取html链接?

类型对象';敌人';没有属性';损害';

时间戳上的SOAP头签名无效

通过外键Django创建从一个字段到其他字段的 Select 列表

在PySpark中,可以从数组中获取任意数量的元素吗?