【问题标题】:How to calculate the distance of each cluster in a scatter plot如何计算散点图中每个簇的距离
【发布时间】:2020-09-27 18:59:11
【问题描述】:

我在散点图中绘制了 2 个集群,我需要找到它们的标准偏差以及从一个集群到另一个集群的中心距离。我找不到任何文档指南来简化为散点图查找 2 个集群的中心的过程,原因是我需要将每个集群的散点与集群中心的距离进行比较。我的实际散点图如下所示:

import matplotlib.pyplot as plt
import numpy as np


vector1 = [
    2.8238, 
    3.0284, 
    5.9333,
    2.0156,
    2.2467, 
    2.0092,
    4.7983, 
    4.3554,
    3.6372, 
    1.3159, 
    2.6174, 
    2.2336, 
    0.9625, 
    5.6285, 
    5.4040, 
    2.7887, 
    0, 
    3.4632, 
    0, 
    2.7370
]  
vector5 = [
    1.2994, 
    7.4469,
    3.6503, 
    2.1667,
    4.1975, 
    3.3006, 
    10.4082, 
    3.4112, 
    2.2395, 
    1.5653, 
    4.3237, 
    1.8679, 
    1.2622, 
    14.1372, 
    6.1686, 
    3.8903, 
    2.2873, 
    6.2559, 
    0.2132, 
    7.2303,
]

plt.rcParams['figure.figsize'] = (16.0, 10.0)
plt.style.use('ggplot')
data = [vector1, std_colomns4]

plt.plot(vector1 , marker='.', linestyle='none', markersize=20, label='Vector 1')
plt.plot(vector5, marker='.', linestyle='none', markersize=20, label='Vector 5')


plt.xticks(range(1, 20, 1))
plt.yticks(range(1, 20, 1))
plt.ylabel('Sizes')
plt.xlabel('Index')
plt.legend()
plt.show()

为了预可视化:

【问题讨论】:

  • 我不确定我的回答是否足够。您的问题目前没有得到很好的解释。为它添加更多细节
  • 大部分情况下你都做对了,我需要将距离可视化,并且是集群在每个方向上的标准差的平均值
  • 你的措辞我还不清楚。您需要举一些例子才能更清楚。
  • 我想在我的数组中进行迭代,从我的数组中的索引中获取平均值,这两个数组应该是我的集群的中心,然后使用这两种方法并计算它们的标准偏差,这将是距离
  • 我想从vector1中取平均值,从vector 2中取平均值并计算它们的标准差

标签: python python-3.x matplotlib data-visualization


【解决方案1】:

您可以通过将它们转换为数组来计算平均值

vector1 = np.array([...])
vector5 = np.array([...])

mean1 = np.mean(vector1)
mean5 = np.mean(vector5)

# Rest of the code

plt.plot((vector1+vector5)/2, marker='x', linestyle='none', markersize=12, label='Mean')

plt.axhline(mean1)
plt.axhline(mean5, c='b')

【讨论】:

    猜你喜欢
    • 2017-05-01
    • 1970-01-01
    • 2018-12-02
    • 2023-03-12
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2013-03-31
    相关资源
    最近更新 更多