gpt4 book ai didi

java - 根据州级数据制作加权美国 map

转载 作者:太空狗 更新时间:2023-10-30 00:56:49 24 4
gpt4 key购买 nike

我有一个州级数据列表,其中包含每个州的编号,例如:

AL  10.5
AK 45.6
AZ 23.4
AR 15.0
...

我想把它做成一张加权 map ,数字最高的地方最暗,数字最低的地方最亮。是否有任何软件或 java 或 python 库可以生成这样的图像?

最佳答案

如果您想自己构建它,您只需要一张好的 map 、这张 map 中每个州的一组位置以及洪水填充。

使用 map http://www.clker.com/cliparts/S/r/a/w/L/0/black-and-white-u-s-map-hi.png ,这是我们得到的:

enter image description here

构建上面 map 的代码由

import sys
from PIL import Image


def floodfill(img, seed, color):
im = img.load()
work = [seed]
start_color = im[seed]
while work:
x, y = work.pop()
im[x, y] = color
for dx, dy in ((-1,0), (1,0), (0,-1), (0,1)):
nx, ny = x + dx, y + dy
if im[nx, ny] == start_color:
work.append((nx, ny))


USA_MAP = Image.open(sys.argv[1]).convert('1')
POINT_STATE = {'AL': (420, 260), 'AZ': (110, 240), 'AR': (350, 250)}

painted_map = USA_MAP.convert('L')
data = {'AL': 10.5, 'AZ': 23.4, 'AR': 15.0}
# Normalize data based on the minimum weight being 0+eps and maximum 30.
for k, v in data.items():
v = v/30.
color = int(round(255 * v))
floodfill(painted_map, POINT_STATE[k], 255 - color)

painted_map.save(sys.argv[2])

关于java - 根据州级数据制作加权美国 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com