我想在python中使用 gmplot
lib绘制散点图。但是,我想为每个图(对于每个坐标(使Marker_Size不同。我写了一个代码,我得到了这个错误:
TypeError: unsupported operand type(s) for /: 'tuple' and 'float'
marker_size
值是整数。
这是代码:
from gmplot import gmplot
import pandas as pd
df = pd.read_csv('tripdataNEW.csv')
def geolocation_scatter(input_data, file_name):
#extract only coordinates and marker_size and convert them to tuple
coordinates_data = input_data[["start station latitude", "start station longitude", "marker_size"]]
coordinates_data = coordinates_data.apply(tuple, axis=1)
#add tuple coordinates to list
coordinate_list = []
for coord in coordinates_data:
coordinate_list.append(coord)
# Scatter points
coordinate_lats, coordinate_lons, marker_size = zip(*coordinate_list)
# Defult map location
gmap = gmplot.GoogleMapPlotter(40.7423543, -73.98915076, 13)
#Scatter dots on the map
gmap.scatter(coordinate_lats, coordinate_lons, 'red', size = marker_size, marker = False)
# Draw
name = str(file_name)+".html"
gmap.draw(name)
print(geolocation_scatter(df ,"SCATTER"))
我认为您的问题与行:
gmap.scatter(coordinate_lats, coordinate_lons, 'red', size = marker_size, marker = False)
虽然您可以通过" coortion_lats"one_answers" coortion_lons"传递一个疑问,但我相信arg" size"正在期望浮点参数,而不是元组(因此错误(。我不确定它旨在允许每个点都具有不同的颜色,它可能期望整个系列的大小相同。您可能只需循环浏览此通话即可获得所需的效果。喜欢:
.
.
.
# Scatter points
coordinate_lats, coordinate_lons, marker_size = zip(*coordinate_list)
# Defult map location
gmap = gmplot.GoogleMapPlotter(40.7423543, -73.98915076, 13)
#Scatter dots on the map
for coord_lat, coord_lon, m_size in zip(coordinate_lats, coordinate_lons, marker_size):
gmap.scatter(coord_lat, coord_lon, 'red', size = m_size , marker = False)
.
.
.