Sup*_*cia 9 python scatter-plot
我有一套要点:
a = ([126, 237, 116, 15, 136, 348, 227, 247, 106, 5, -96, 25, 146], [117, 127, 228, 107, 6, 137, 238, 16, 339, 218, 97, -4, -105])
Run Code Online (Sandbox Code Playgroud)
我像这样制作一个散点图:
fig = plt.figure(figsize = (15,6))
ax = fig.add_subplot(111)
ax.scatter(a[0], a[1], color = 'red', s=binradius)
Run Code Online (Sandbox Code Playgroud)
这使得这个情节:
-
我将其与图片重叠,其中每个散点处都有一个球形斑点.我想要适合这个blob,所以我在散点周围定义了一个矩形区域,以便进行拟合.
我想在图上看到这个矩形,以便在视觉上看它们是否足够大以包围blob,如下所示:
我能用scatter吗?或者还有其他方法可以做到吗?
尽管@ ralf-htp的答案很好并且很干净并且使用scatter,但据我所知,标记的标度表示为points(例如,请参见此处)。此外,如果放大,自定义标记将不会更改大小。
也许这正是您想要的。如果不是这样,使用单独的Rectangle对象也可以很好地解决问题。这允许您以数据单位而不是点指定宽度和高度,并且可以放大。如果需要,通过设置angle属性,也很容易应用旋转:
from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle
# Your data
a = ([126, 237, 116, 15, 136, 348, 227, 247, 106, 5, -96, 25, 146],
[117, 127, 228, 107, 6, 137, 238, 16, 339, 218, 97, -4, -105])
# Your scatter plot
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(a[0], a[1], color = 'red', s=10)
# Add rectangles
width = 30
height = 20
a_zipped = zip(*a)
for a_x, a_y in a_zipped:
ax.add_patch(Rectangle(xy=(a_x-width/2, a_y-height/2) ,width=width, height=height, linewidth=1, color='blue', fill=False))
ax.axis('equal')
plt.show()
Run Code Online (Sandbox Code Playgroud)
注意:如有必要,您可以Rectangle通过获得实例ax.get_children()。
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |