Matplotlib不会绘制多个s

2024-04-16 21:45:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我为数据分析写了一个python脚本。结果是一个图形中有多个散点。一切都很好,但由于太复杂,我重构了脚本,并用几个方法构建了一个类,以保持它更简单,并有一个更好的概述。但现在我的一个散点不再画了,我不知道为什么。代码几乎完全相同。只是分成几个方法。代码如下所示:

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'

代码末尾有两个斧形散射(...). 第一个画出来了,第二个没有画出来。我还尝试了xp,yp数据斧头图(…)但这也不是画出来的。我在调试器中检查了xp,yp,它们都是同样充满数据的。你知道吗

有人知道怎么了吗?你知道吗


Tags: inselflineaxminmaxprojlon