提供两个文档自动生成热力图

给你一个点坐标文件,一个对应每个点坐标的数值大小,自动生成圆形热力图

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7637823
  • 你也可以参考下这篇文章:自动生成用于测试和评估自动驾驶汽车的各种挑战性场景
  • 除此之外, 这篇博客: 基于物理的大气渲染-单次散射的暴力求解中的 参考文档: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    Lele Feng - 基于物理的大气渲染

    《2003 Modeling Skylight and Aerial Perspective》

    《GPU Gems2》

  • 您还可以看一下 吴刚老师的【吴刚大讲堂】电商品牌文案设计方法课程中的 电商品牌文案设计方法介绍小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我可以为你提供以下解决方案:

    1.首先,需要将点坐标文件和数值文件读入到Python中。你可以使用Python内置的open函数,以及readlines方法读取文本文件的每一行,并以列表的形式获取。

    #读取点坐标文件并处理数据
    with open("points.txt",'r') as f:
        point_list=f.readlines()
        point_list = [i.strip().split() for i in point_list]
    
    #读取数值文件并处理数据
    with open("values.txt",'r') as f:
        value_list=f.readlines()
        value_list = [i.strip() for i in value_list]
    

    2.将点坐标和数值进行对应。你可以使用字典将每个点的坐标和对应的数值对应起来。

    #将点坐标和数值进行对应
    data = {}
    for i in range(len(point_list)):
        point = tuple(map(float,point_list[i]))
        value = float(value_list[i])
        data[point] = value
    

    3.生成热力图。你可以使用第三方库matplotlib中的scatter函数,并设置c参数为数值大小,并使用cmap参数指定颜色映射。

    import matplotlib.pyplot as plt
    
    x = [i[0] for i in data.keys()]
    y = [i[1] for i in data.keys()]
    c = [i for i in data.values()]
    
    fig, ax = plt.subplots()
    
    scatter = ax.scatter(x, y, c=c, cmap='viridis')
    plt.colorbar(scatter)
    
    plt.show()
    

    使用上述代码,你可以将点坐标和数值大小编码到热力图的每个圆圈中,并生成圆形热力图。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^