В общем ответе для любой графической библиотеки вы хотели бы сделать что-то вроде этого:
maxSize = 10 #The maximum radius of the circles you wish to draw.
maxCount = max(counts)
for lat, long, count in zip(latitudes, longitudes, counts):
draw_circle(lat, long, count/maxCount*maxSize) #Some drawing library, taking x, y, radius.
zip()
позволяет объединить три списка и выполнить их итерацию в одном цикле.
Разделив счет на максимальное количество, вы получите относительный масштаб по размеру, который вы затем умножаете на размер, которым хотите, чтобы были круги. Если вы тоже хотите изменить цвет, вы можете сделать что-то вроде:
maxSize = 10 #The maximum radius of the circles you wish to draw.
maxCount = max(counts)
for lat, long, count in zip(latitudes, longitudes, counts):
intensity = count/maxCount
draw_circle(lat, long, intensity*maxSize, Color(intensity*255, 0, 0)) #Some drawing library, taking x, y, radius, colour.
Создание скользящей шкалы от черного к красному по мере увеличения интенсивности.
Возможно, вам придется настроить значения широты и долготы, чтобы получить вменяемые значения x и y, в зависимости от размера, который вы хотите получить в конечном изображении, и значений, которые вы собираетесь вставить. и меньшие элементы слишком малы при уменьшении максимального размера, вы можете рассмотреть логарифмический масштаб вместо линейного для интенсивности.
Реализация этого с реальной графической библиотекой должна быть тривиальной, но зависит от самой библиотеки.