matplotlib 散点图中部分填充的圆圈
Partially filled circles in matplotlib scatter plot
我目前正在尝试在 matplotlib 散点图中绘制一个部分填充的圆。
官方文档中的 marker fill styles 仅提供半填充或空心圆圈。
我想要的是类似于下图的东西:
这里我希望能够控制,例如,只有第2-6部分出现在特定标记中,而其他标记显示不同的范围。
matplotlib 支持这样的东西吗?我知道我可能需要将圆分成 12 个部分并为它们分配特定的颜色,但我不知道该怎么做。
这里是一个标记所需的代码,然后只需遍历 x0、y0 并使用白色作为希望的“消失”部分的颜色。
import matplotlib.pylab as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1,1,1, aspect='equal')
x0 = 0.2
y0 = 0.7
rho_marker = 0.05
n_marker = 14
theta = np.zeros((12, n_marker))
for j in range(12):
theta[j, :] = np.linspace(float(j)/6.*np.pi, float(j+1)/6.*np.pi, n_marker)
x = x0 + np.append(0, rho_marker*np.cos(theta[j]))
y = y0 + np.append(0, rho_marker*np.sin(theta[j]))
ax.fill(x, y)
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.show()
这里是结果图:
我目前正在尝试在 matplotlib 散点图中绘制一个部分填充的圆。
官方文档中的 marker fill styles 仅提供半填充或空心圆圈。
我想要的是类似于下图的东西:
这里我希望能够控制,例如,只有第2-6部分出现在特定标记中,而其他标记显示不同的范围。
matplotlib 支持这样的东西吗?我知道我可能需要将圆分成 12 个部分并为它们分配特定的颜色,但我不知道该怎么做。
这里是一个标记所需的代码,然后只需遍历 x0、y0 并使用白色作为希望的“消失”部分的颜色。
import matplotlib.pylab as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1,1,1, aspect='equal')
x0 = 0.2
y0 = 0.7
rho_marker = 0.05
n_marker = 14
theta = np.zeros((12, n_marker))
for j in range(12):
theta[j, :] = np.linspace(float(j)/6.*np.pi, float(j+1)/6.*np.pi, n_marker)
x = x0 + np.append(0, rho_marker*np.cos(theta[j]))
y = y0 + np.append(0, rho_marker*np.sin(theta[j]))
ax.fill(x, y)
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.show()
这里是结果图: