2

我被以下问题困住了,我希望我能连贯地解释它。

所以,我在坐标系上有一些(大约 10 个)离散位置。

现在,我想分析一个程序中的数据,在该程序中,用户可以将每个点标记为 somethingA 和 somethingB。

我提取了每个类的数据点。所以我的somethingA类大约有60分,而其他类则少一点。一类代表好点,一类代表坏点。我想找到标签最好/坏的职位。我用机器学习算法来做到这一点,我只想用图表来可视化它。

我现在想绘制这些点。所以我每班制作一个情节。但是由于在每个类中每个点都至少出现一次,所以这两个图看起来完全一样。但是,出现的数量在不同的位置上有不同的分布。也许 A 点在 A 类中有 20 次出现,在 B 类中有 1 次出现,这两个图看起来都一样。

所以,我的问题是:在 Matplotlib 中绘制散点图时,如何考虑点的出现次数?

要么有不同的颜色(比如热图?),要么有一个很酷的传说。或使用不同的尺寸(例如,更高的数量 = 更大的圆圈)。

任何帮助,将不胜感激!

4

1 回答 1

1

我不知道这是否对您有帮助,但我遇到了一个问题,我想要一个散点图来反映两个位置以及归因于数据点的两个变量。

由于 scatter 函数中的大小和颜色本身不允许变量,这意味着必须以通常的方式指定颜色代码和大小,这意味着某事像

        ax.scatter(..., c=whatEverFunction, s=numberOfOccurences, ...)

对我不起作用。

我所做的是将我想要可视化的两个变量的值组合起来。在我的情况下,变量nodeMass和另一个变量。

for i in range(Number):
    mask[i] = False
    if(lowerBound1<variableOne[i]<upperBound1):
        mask[i] = True & pmask[i]
    if len(positionX[mask])>0:
        ax.scatter(positionX[mask], positionY[mask], positionZ[mask],C='#424242',s=10, edgecolors='none')
for i in range(Number):
    mask[i] = False
    if(lowerBound2<variableOne[i]<upperBound2):
        mask[i] = True & pmask[i]
if len(positionX[mask])>0:
       ax.scatter(positionX[mask], positionY[mask], positionZ[mask],c='#9E0050',s=25,edgecolors='none') 

我知道它不是很优雅,但它对我有用。我必须创建与变量中的 bin 一样多的 for 循环。使用 if 查询和掩码,我至少可以避免冗余或“不可读”的情节。

于 2013-04-02T01:18:57.813 回答