小编Lir*_*ris的帖子

Matplotlib 和 :RuntimeError: 主线程不在主循环中:

我正在尝试在 python 下并行运行多个重复性任务。我对多处理很陌生,但由于所有任务都是独立的,我使用了以下简单的代码:

    import numpy as np
    import sys
    import os
    import glob
    import matplotlib.pyplot as plt
    import concurrent.futures as Cfut

    def analize(simul, N_thread):
        path = os.getcwd()

        print('Analizing topo ...')
        Data = output of some calculations

        print('Writing Data ...')
        np.save('Data', Data)

        print('Data saved')
        print('Printing figures')

        plt.figure()
        plt.plot(Data[0])
        plt.savefig('figure1.pdf)

        plt.clf()
        plt.plot(Data[0])
        plt.savefig('figure1.pdf)

        plt.close('all')
        print('figures saved')
        os.chdir(path

if __name__ == '__main__':
    list_simul = sorted(glob.glob('Layer*'))
    executor = Cfut.ProcessPoolExecutor(5)
   #executor = Cfut.ThreadPoolExecutor(N_jobs)
    futures = [executor.submit(analize, item, 10) for item in list_simul]
    Cfut.wait(futures)
Run Code Online (Sandbox Code Playgroud)

它在 3 …

python multithreading tkinter matplotlib multiprocessing

10
推荐指数
2
解决办法
6899
查看次数

提取 grib 文件的经度和纬度范围

我对 GRIB 格式还很陌生,但我目前需要处理它。使用wgrib,我成功地提取了我想要的字段、相应的时间等。

但我错过了网格点的坐标,或者网格的纬度和经度范围。

我怎样才能得到那个?我更喜欢只使用 python 和 wgrib,但如果有任何其他简单的方法,请告诉我!我在网上找到的似乎主要涉及 wgrib2 格式。

python grib

5
推荐指数
1
解决办法
2836
查看次数

Matplotlib - 沿同一轴的不同刻度标签对齐

我有一个带有很多子图的图形,因此轴的最后一个刻度标签写在下一个刻度标签的第一个刻度标签上。 请参阅此处的示例

由于我想在设置子图时保持子图之间的间距,因此我希望根据刻度进行不同的对齐,因为它可以通过以下方式生成:

    plt.xticks([0], ha = 'left')
    plt.xticks([0.2,0.4], ha = 'center')
    plt.xticks([0.6], ha = 'right')
Run Code Online (Sandbox Code Playgroud)

使用它,图中只显示了 xticks 的最后一次调用。换句话说,这个想法是对齐第一个和最后一个刻度标签,使它们留在子图中。

希望我很清楚!

有任何想法吗 ?

matplotlib subplot axis-labels

3
推荐指数
1
解决办法
1944
查看次数

Python-使用不同的分隔符读取数据文本文件

我有一个文件,其中的字段由':'分隔,子字段由';'分隔,子字段中的项目由','分隔。

我想阅读Python。一段时间后,我可能可以逐行阅读它,然后拆分所有内容,但是我相信这种事情已经存在了吗?

文件的一行:

   0 :   16,  250 :  1 :  0.053 :RIG : DIS :  1 :   48, 220;  2 :   42, 241;  2 :   43, 251;  3 :   25, 266;  1 :   36, 287;  2 
Run Code Online (Sandbox Code Playgroud)

我实际上尝试过:

Dat = np.genfromtxt(path, delimiter= ':', dtype = None, skip_header = 4,  skip_footer = 5, encoding = None)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我不明白,它只给了我文件的第一列。但是,如果我更改为,则可以使用delimiter= ','

这给了我7个领域,我实际上可以拆分自己。

然后:1)您将如何读取该文件?2)为什么使用np.genfromtxt,我仅使用':'作为分隔符来获得第一列?

python numpy python-3.x

2
推荐指数
1
解决办法
2322
查看次数