Java 在散点图中查找位于X轴和Y轴附近的点
我有一个特别的问题,涉及我试图创建的散点图。我有一个包含以下格式数据的文件:每个名称都是唯一的,CompanyScore和CommunityScore是整数值Java 在散点图中查找位于X轴和Y轴附近的点,java,r,plot,statistics,Java,R,Plot,Statistics,我有一个特别的问题,涉及我试图创建的散点图。我有一个包含以下格式数据的文件:每个名称都是唯一的,CompanyScore和CommunityScore是整数值 Name CompanyScore CommunityScore Patrick 8383 99000 文件以相同的格式保存了相当长的一段时间。我试图在X轴(CompanyScore)和Y轴(CommunityScore)附近的散点图上找出前20个点。也许有一些数学方法可以做到这一点,但目前我完全不知所措。
Name CompanyScore CommunityScore
Patrick 8383 99000
文件以相同的格式保存了相当长的一段时间。我试图在X轴(CompanyScore)和Y轴(CommunityScore)附近的散点图上找出前20个点。也许有一些数学方法可以做到这一点,但目前我完全不知所措。理想情况下,我可能需要从文件中用Java绘制散点图,然后计算出与X轴和Y轴最接近的值应该不会太难,对吗?我不确定是否有这样的图书馆。我知道有像R这样的统计工具,但我认为用Java查看细节可能更容易。希望这不是一个漫长的过程。如果有人能帮助我,我将不胜感激 如果您要查找最接近X或最接近Y的点,那么只需选择X或Y分数最低的点即可
如果要查找最接近X和最接近Y的点,请计算从该点到零的距离:
distances = sqrt(i * ((x - min_x) / (max_x - min_x))^2 +
j * ((y - min_y) / (max_y - min_y))^2 )
where i + j = 1.0, and 0.0 <= i, j <= 1.0 with i and j being the weight
constants if you want to emphasize one axis over the other
distance=sqrt(i*((x-min\ux)/(max\ux-min\ux))^2+
j*((y-最小值)/(最大值-最小值))^2)
其中i+j=1.0和0.0如果我理解正确,您需要20行具有最低CompanyScore
值,以及20行具有最低CommunityScore
值。你可以用和来做这件事。尝试:
我假设所有的值都是正的。如果您想要最接近0的值,有些是负数,可以使用abs(myData$CompanyScore)
,例如,在order()
调用中。最靠近X轴和Y轴的点是那些值(CompanyScore和CommunityScore)最接近零的点。也许您的意思是最接近原点?这将是data[order(sqrt(data$Company^2+data$CommunityScore^2))[1:20],]
。综合得分最高的人是数学.sqrt(x*x+y*y)得分最高的人代码>(从原点到点的距离)。我不知道OP是否需要组合距离,而不是2个列表(在我的解释中),但如果是这样,请注意此解决方案将由比例较大的变量控制,除非它们在相同的比例上。我认为假设他们是这样是不安全的&这个例子似乎也暗示了另一种情况。如果你对这个问题的解释是正确的,那么在计算欧几里德距离之前,你可能需要对这两个变量进行规范化。@gung这是一个很好的观点,谢谢。不客气,@sdadas。不幸的是,规范化公式只适用于简单的情况。更可靠的规范化公式是(x-min\ux)/(max\ux-min\ux)
。另一方面,(现在和我争论)如果OP想要组合距离,他们可能希望它由一个变量控制;这一点需要澄清…@gung再次编辑:D
head(myData[order(myData$CompanyScore)], n=20)
head(myData[order(myData$CommunityScore)], n=20)