700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python热力图——“星空代码”

python热力图——“星空代码”

时间:2020-06-03 00:05:41

相关推荐

python热力图——“星空代码”

描述

使用python,生成一个由随机数据构成的热力图

由于我使用的是三通道,因此热力值小的部分是黑色,热力值高的部分是白色

我:看我生成的热力图女朋友:你生成的是星空图

代码

#encoding: utf-8from pyecharts.charts import Geofrom pyecharts import optionsfrom pyecharts.globals import GeoTypeimport pandas as pdimport webbrowserimport matplotlib.pyplot as pltimport numpy as npimport cv2from PIL import Imageimport randomimport cmathgap_size = 400image_cols = 1148 + gap_size # 横坐标image_rows = 1501 + gap_size # 纵坐标image = Image.new("RGB", (image_cols, image_rows))star_num = 100 # 星星个数for k in range(star_num):star_row = random.randint(gap_size/2, image_rows-gap_size/2)star_col = random.randint(gap_size/2, image_cols-gap_size/2)impact_cols = [star_col+i-50 for i in range(100)]impact_rows = [star_row+i-50 for i in range(100)]# 每个star的影响范围for wide in impact_cols:for height in impact_rows:position_near = (wide, height) # 取全图中的一个点pixBefore = image.getpixel(position_near) # 取一下当前的像素值base_value = 200 # 影响基值,现在先写成200# 影响系数 = 一个和距离有关的值, 或者是其他的distance = (cmath.sqrt( pow(wide-star_col,2) + pow(height-star_row,2)) ).realimpact_factor = 1 / (distance+1)# 影响因子大于一定的值再计算if impact_factor > 0.02:# 影响的值 = 影响系数 * 影响基值impact_value = impact_factor * base_valuepixAfter = (pixBefore[0] + int(impact_value), pixBefore[1]+ int(impact_value), pixBefore[2]+ int(impact_value))image.putpixel(position_near, pixAfter)image.save("star.png")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。