我遇到了以下问题,我希望我能解释它的连贯性。
所以,我在坐标系上有一个(大约10个)离散位置。
现在,我想分析一个程序中的数据,用户可以将每个点标记为A和B之类的东西。
我提取了每个班级的数据点。因此,对于其他类,我有大约60分,而对于其他类,我有大约60分。一个班级代表好点,一个代表坏点。我想找到标签最好/最差的位置。我用机器学习算法做到这一点,我只想用图表来形象化。
我现在想要绘制这些点。所以我每班制作一个情节。但是因为在每个班级中,每个点至少出现一次,所以这两个图看起来完全一样。 但是,出现的数量在不同的位置有不同的分布。 也许A点在A级有20次出现,在B级有1次出现,两个图看起来都是一样的。
所以,我的问题是:在Matplotlib中绘制散点图时,如何考虑点的出现次数?
使用不同颜色(如热图?)可能会有一个很酷的传奇。 或者使用不同的尺寸(例如,更高的数量=更大的cirlce)。
任何帮助将不胜感激!
答案 0 :(得分:1)
我不知道这是否对你有所帮助,但我遇到了一个问题,我希望散点图反映两个位置以及两个归因于数据点的变量。
由于散点函数中的大小和颜色不允许变量本身,这意味着必须以通常的方式指定颜色代码和大小,这意味着......
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')
我知道它不是很优雅但它对我有用。我必须制作尽可能多的循环,因为我的变量中有垃圾箱。使用if-querys和面具,我至少可以避免冗余或“不可读”的情节。