python热力图——“星空代码”
生活随笔
收集整理的這篇文章主要介紹了
python热力图——“星空代码”
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
描述
使用python,生成一個由隨機(jī)數(shù)據(jù)構(gòu)成的熱力圖
由于我使用的是三通道,因此熱力值小的部分是黑色,熱力值高的部分是白色
- 我:看我生成的熱力圖
- 女朋友:你生成的是星空圖
代碼
#encoding: utf-8 from pyecharts.charts import Geo from pyecharts import options from pyecharts.globals import GeoType import pandas as pd import webbrowser import matplotlib.pyplot as plt import numpy as np import cv2 from PIL import Image import random import cmathgap_size = 400 image_cols = 1148 + gap_size # 橫坐標(biāo) image_rows = 1501 + gap_size # 縱坐標(biāo) image = Image.new("RGB", (image_cols, image_rows)) star_num = 100 # 星星個數(shù)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) # 取全圖中的一個點(diǎn)pixBefore = image.getpixel(position_near) # 取一下當(dāng)前的像素值base_value = 200 # 影響基值,現(xiàn)在先寫成200# 影響系數(shù) = 一個和距離有關(guān)的值, 或者是其他的distance = (cmath.sqrt( pow(wide-star_col,2) + pow(height-star_row,2)) ).realimpact_factor = 1 / (distance+1)# 影響因子大于一定的值再計算if impact_factor > 0.02:# 影響的值 = 影響系數(shù) * 影響基值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")總結(jié)
以上是生活随笔為你收集整理的python热力图——“星空代码”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PySpark数据分析基础:PySpar
- 下一篇: python设计一个小游戏、定义一个to