是否可以在matplotlib侧边栏中创建数据点的形状?

时间:2014-03-25 05:19:19

标签: matplotlib

类似于下面的图片(它似乎是手工生成的): enter image description here

是否可以使用matplotlib生成以紫色圈出的区域?

我知道可以使用相关颜色/密度的侧边栏但是我对形状本身感兴趣。

1 个答案:

答案 0 :(得分:1)

您可以分别使用固定的x和y再次绘制项目。由于默认情况下会裁剪轴外的项目,因此在绘图时必须将clip_on设置为False。

import matplotlib.pyplot as plt
import numpy as np

#stars
x1 = np.random.rand(4)
y1 = np.random.rand(4)

# circles
x2 = np.random.rand(4)
y2 = np.random.rand(4)

fig, ax = plt.subplots(subplot_kw={'aspect': 1, 'xlim': [0,1], 'ylim': [0,1]})

star_style = {'linestyle': 'none', 'marker': (5,1), 'ms': 16, 'mec': 'r', 'mfc': 'none', 'mew': 2}
circ_style = {'linestyle': 'none', 'marker': 'o', 'ms': 14, 'mec': 'b', 'mfc': 'none', 'mew': 2}

ax.plot(x1, y1, **star_style)
ax.plot(np.full_like(x1, -0.1), y1, clip_on=False, **star_style)
ax.plot(x1, np.full_like(y1, -0.1), clip_on=False, **star_style)

ax.plot(x2, y2, **circ_style)
ax.plot(np.full_like(x2, -0.1), y2, clip_on=False, **circ_style)
ax.plot(x2, np.full_like(y2, -0.1), clip_on=False, **circ_style)

enter image description here