我想用gmplot中的Python库绘制散点图。但是,我想为每个图(每个坐标)设置不同的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"))发布于 2019-09-20 08:19:57
我想你的问题出在线路上:
gmap.scatter(coordinate_lats, coordinate_lons, 'red', size = marker_size, marker = False)虽然你可以通过"coordinate_lats“和"coordinate_lons”传递一个迭代值,但我相信参数“大小”需要的是一个浮点型参数,而不是一个元组(这就是错误的原因)。我不确定它的设计是否允许每个点都有不同的颜色,它可能希望整个系列都是相同的大小。您可能只需循环此调用即可获得所需的效果。如下所示:
.
.
.
# 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)
.
.
.https://stackoverflow.com/questions/56895030
复制相似问题