【问题标题】:Error when plotting scatter plot with gmplot in Python在 Python 中使用 gmplot 绘制散点图时出错
【发布时间】:2019-07-04 23:18:39
【问题描述】:

我想在 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"))

【问题讨论】:

  • 与您的问题无关,但您可以这样做:coordinate_lats, coordinate_lons, marker_size = input_data["start station latitude"], input_data['start_station_longtitude'], input_data['marker_size'] 而不是所有其他代码。
  • 谢谢,你知道如何解决这个问题吗?

标签: python gmplot


【解决方案1】:

我认为你的问题在于这条线:

gmap.scatter(coordinate_lats, coordinate_lons, 'red', size = marker_size, marker = False)

虽然您可以使用“coordinate_lats”和“coordinate_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)
.
.
.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-23
    • 2020-09-14
    • 2013-05-12
    • 2016-03-19
    • 2023-03-15
    • 2022-10-02
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多