使用Basemap.scatter()时的ValueError

时间:2017-01-16 23:47:11

标签: python matplotlib plot

我有一个数据框,其中包含一系列我正在映射的时间序列地理数据。

my_map = Basemap(
projection="tmerc",
lon_0=-105,
lat_0=39,
ellps="WGS84",
llcrnrlon=coords[0] - extra + 0.01 * w,
llcrnrlat=coords[1] - extra + 0.01 * h,
urcrnrlon=coords[2] + extra + 0.03 * w,
urcrnrlat=coords[3] + extra + 0.01 * h,
lat_ts=0,
resolution="h",
suppress_ticks=True)

my_map.readshapefile("...", "colorado")

df_map = pd.DataFrame({
    "poly": [Polygon(xy) for xy in my_map.colorado],
    "business_name": [business["NAME"] for business in my_map.colorado_info]
})

map_points = pd.Series([Point(my_map(mapped_x, mapped_y)) for mapped_x, mapped_y in zip(df[1], df[0])])
business_points = MultiPoint(list(map_points.values))
county_polygons = prep(MultiPolygon(list(df_map["poly"].values)))
colorado_points = filter(county_polygons.contains, business_points)

fig, ax = plt.subplots()
map_colors = [date2num(i) for i in df["datecreated"]]
dev = my_map.scatter(
    [geom.x for geom in colorado_points],
    [geom.y for geom in colorado_points],
    5, marker="o", lw=.25,
    c=map_colors, edgecolor='w', cmap=plt.cm.viridis,
    alpha=0.9, antialiased=True,
    label='Business Locations')

当我打电话给my_map.scatter()时,它不断抛出这个错误:

  

ValueError:to_rgba:无效的rgba arg“689576.0”to_rgb:无效的rgb   arg“689576.0”无法将参数转换为rgb序列

我的数据集有大约130万个数据点,多个重复日期与不同事件相关。我想在那么多日期使用颜色条不会有问题,因为它有16M颜色。 Looking at the docsmatplotlib.pyplot.scatter()c arg可以是“单个颜色格式字符串,或长度为N的颜色规范序列,或者要映射到颜色的N个数字序列”

我做错了什么以及如何解决?

完整追溯:https://paste.ubuntu.com/23813647/

Minimal, Complete, and Verifiable example

0 个答案:

没有答案