在Python中绘制多个点而不是一个点

时间:2014-08-15 12:19:31

标签: python matplotlib tweepy matplotlib-basemap

不确定为什么它没有产生所有积分。这是我的代码:

from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
from mpl_toolkits.basemap import Basemap

1 个答案:

答案 0 :(得分:1)

我认为您可以缓存数据,然后将它们全部绘制在最后:

class listener(StreamListener):
    x = []
    y = []

    def on_status(self, status):

        if status.coordinates:
            print status.coordinates
            coords  = status.coordinates
            latitude = coords['coordinates'][0]
            longitude = coords['coordinates'][1]
            xt,yt = m(latitude, longitude)
            self.x.append(xt)
            self.y.append(yt)

            return True
    def plotAll(self):
        m.plot(self.x, self.y, 'ro', markersize=20, alpha=.5)

Plotter = listener()
try:
    auth = OAuthHandler(ckey, csecret)
    auth.set_access_token(atoken, asecret)
    twitterStream = Stream(auth, Plotter)
    twitterStream.filter(track=["justin", "bieber"])
    Plotter.plotAll()
except KeyboardInterrupt, e:
    plt.show()

无法根据您的具体条件和OAuthHandler对其进行测试,但如果没有它,则可以在此处进行测试。