【问题标题】:Plot with for loop from different datasets使用来自不同数据集的 for 循环绘图
【发布时间】:2020-01-03 20:29:49
【问题描述】:

我有 2 个数据集:

df1=

    id_first    latitude    longitude
0   403         45.0714     7.6187
1   403         45.0739     7.6195
2   1249        45.0745     7.6152
3   1249        45.1067     7.6451
4   1249        45.1062     7.6482
5   1531        45.1088     7.6528
6   1531        45.1005     7.6155
7   14318       45.1047     7.6056

df2 =

    id_now  cluster_group
0   403     0
1   1249    1
2   1531    3
3   14318   3

我想不能创建一个循环(或其他)来:

  • df2403 只属于一个cluster_group (0) 转到df1 和 检查与403 纬度 - 2 点和经度 - 2 相关的所有点 点。并绘制它们。

  • 重复整个 df1 df2 bu 绘制在一个图中(每个集群的颜色不同) - 我实际上可以管理这个,但如果你能提供 smth (?)

附:在df2 153114318 属于同一个集群。所以无论如何,我想用一种颜色(或一张地图)绘制它的点。

试试:

n_clusters = 46

for k in range(0, n_clusters):
     ....

每种颜色代表cluster_group

【问题讨论】:

  • 如果您已经有了解决方案...您当前的解决方案是什么?为什么要寻找替代方案?如果您解释了这些要点,您可以希望得到更好的答案。
  • @Valentino 我没有解决办法。这是一张来自网络的随机照片
  • 啊,好的。因为你说“我可以做到”,所以我认为你有一个解决方案。

标签: python pandas numpy for-loop plot


【解决方案1】:

以下是使用pandasmatplotlib.pyplot 的方法。

import pandas as pd
import matplotlib.pyplot as plt

#here I read the dataframe from a file, you read it in the way you prefer
df1 = pd.read_csv('data.txt', sep='\s+')
df2 = pd.read_csv('data2.txt', sep='\s+')

#the important piece of code is here:
for g, gdf in df2.groupby('cluster_group'):
    df1_to_plot = df1.loc[df1['id_first'].isin(gdf['id_now'])]
    plt.plot(df1_to_plot['latitude'], df1_to_plot['longitude'], label='Cluster {:d}'.format(g))

plt.legend()
plt.show()

如果你不熟悉groupbyisin,一些解释:

  1. df2.groupby('cluster_group')df2 的子集上返回一个迭代器,每个子集都是在 'cluster_group' 列中对具有相同值的所有行进行分组而构建的。
  2. 使用这些子集gdf 中的每一个,我选择df1 的行,其中'id_first' 列中的值包含在gdf 中。这是通过isin 方法完成的。此选择存储在数据框df1_to_plot 中,其中包含要绘制的数据。
  3. 现在我可以使用plt.plot 来实际绘制数据。 Matplotlib 将自行处理颜色。 label 参数由legend 方法在创建图例时使用。

使用您提供的简单数据,此代码将生成以下图像(x 轴是纬度,y 轴是经度:

【讨论】:

    猜你喜欢
    • 2015-07-14
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多