Matplotlib不会绘制多个散点图

时间:2014-03-22 20:13:03

标签: python matplotlib

我写了一个用于数据分析的python脚本。结果是一个图中有多个散点图。 Everythink工作正常,但由于过于复杂,我重构了脚本并使用多种方法构建了一个类,以使其更简单并获得更好的概述。但是现在我的一个散射不再被绘制,我无法弄清楚为什么。代码几乎完全相同。只需分成几种方法。代码如下所示:

def _setup_plot_window(self):
    t1 = time.time()
    ax = self.ax
    P = self.P
    Proj = self.Proj
    GM = self.GM

    ax.set_xlim(Proj.west_most_longitude - self.BORDER_MARGIN, 
                Proj.east_most_longitude + self.BORDER_MARGIN)

    ax.set_ylim(Proj.south_most_latitude - self.BORDER_MARGIN, 
                Proj.north_most_latitude + self.BORDER_MARGIN)

    paths_xy = []
    for p in self.paths:
        p_xy = [Proj.project_to_xy(x[0], x[1]) for x in p]
        paths_xy.append(p_xy)

    tram_stops_X = []; tram_stops_Y = []
    for i, coord_name in self.trams.iteritems():
        lat, lon, n = coord_name
        tram_stops_X.append(lon)
        tram_stops_Y.append(lat)
        plt.text(lon, lat, n, fontsize=10, clip_on=True)

    for p in paths_xy:
        y = map(lambda x:x[0], p)
        x = map(lambda x:x[1], p)
        line = Line2D(x, y, lw=1, color='g')
        ax.add_line(line)

    line_top    = Line2D([GM.lon_max, GM.lon_max], [GM.lat_min, GM.lat_max], c='g', linestyle = '--', lw=1)
    line_bottom = Line2D([GM.lon_min, GM.lon_min], [GM.lat_min, GM.lat_max], c='g', linestyle = '--', lw=1)
    line_left   = Line2D([GM.lon_min, GM.lon_max], [GM.lat_min, GM.lat_min], c='g', linestyle = '--', lw=1)
    line_right  = Line2D([GM.lon_min, GM.lon_max], [GM.lat_max, GM.lat_max], c='g', linestyle = '--', lw=1)
    ax.add_line(line_top)
    ax.add_line(line_bottom)
    ax.add_line(line_left)
    ax.add_line(line_right)

    ax.scatter(tram_stops_X, tram_stops_Y, c='r', marker='x')
    xp, yp = separate_particles_in_list(P.particles)
    plot_particles, = ax.plot(xp, yp, c='b', marker='o', linestyle='None')
    #ax.scatter(xp, yp, c='b', marker='o')

    plt.show()
    print 'Time "Setup plot window": ', (time.time()-t1) / 60, ' min'

在代码末尾附近有两个ax.scatter(...)。第一个是绘制的,第二个是不绘制的。我也用ax.plot(...)尝试了xp,yp数据但是也没有画出来。我在调试器中检查了xp,yp,它们完全是数据填充。

有人知道出了什么问题吗?

0 个答案:

没有答案