Диаграмма рассеяния базовой карты (Matplotlib) - ошибка не может установить атрибут - PullRequest
0 голосов
/ 10 декабря 2018

Я пытался добавить два списка с плавающей точкой на график рассеяния, используя Matplotlib.Я просто создал базовую карту с настройками по умолчанию.Однако всякий раз, когда я пытаюсь запустить скрипт, я получаю сообщение об ошибке ниже.

#!/usr/bin/python

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt


def main():

    wmap = Basemap()

    wmap.drawmapboundary(fill_color='aqua')

   wmap.fillcontinents(color='coral',lake_color='aqua')

    wmap.drawcoastlines()

    locationData = open("locationData", "r")

    lats = []

    lons = []

    ASN = []

    company = []

    fileLine = locationData.readlines()

    for i in fileLine:

        parsedLine = i.split(",")

        lats.append(float(parsedLine[0]))

        lons.append(float(parsedLine[1]))

        ASN.append(parsedLine[2])

        company.append(parsedLine[3])

    locationData.close()

    x,y = wmap(lats,lons)

    wmap.scatter(x,y)

    plt.show()


 if(__name__ == '__main__'):
        main()

Я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "mapGen.py", line 51, in <module>
    main()
  File "mapGen.py", line 45, in main
    wmap.scatter(lats,lons)
  File "/usr/lib/python3.7/site-packages      /mpl_toolkits/basemap/__init__.py", line 563, in with_transform
    return   plotfunc(self,x,y,*args,**kwargs)
  File "/usr/lib/python3.7/site-packages/mpl_toolkits/basemap/__init__.py", line 3253, in scatter
    self._restore_hold(ax)
  File "/usr/lib/python3.7/site-packages/mpl_toolkits/basemap/__init__.py", line 3229, in _restore_hold
ax._hold = self._tmp_hold
AttributeError: can't set attribute

Я пытался изменить атрибуты на wmap.scatter () и переменные, но ошибка все еще сохраняется, и я не смог найти документацию по этой ошибке.Есть идеи?

1 Ответ

0 голосов
/ 28 января 2019

Это конкретное исключение возникает, когда атрибут, который вы пытаетесь изменить, является свойством, которое не имеет установщика.Похоже, что изменение базовой карты необходимо, добавление сеттера решит проблему.

Но вы можете изменить wmap.scatter(x,y) на plt.scatter(x, y), чтобы решить.

...