Многопроцессорная обработка с подзаголовками matplotlib не работает

#python #matplotlib #multiprocessing

Вопрос:

Я хочу ускорить свой процесс с multiprocessing помощью модуля, но он всегда показывает пустой график.

Вот некоторый код для воспроизведения проблемы:

 def plot_(ax, chart):
    x = np.arange(30)
    if chart == 1:
        y = np.exp(x)
    else:
        y = np.arange(30)
    # plt.xscale('log', base=10)
    ax.barh(x, y)
    ax.set_title('chart %d' % chart)
 
 import matplotlib.pyplot as plt
import multiprocessing
from plot_ import plot_
fig, axs = plt.subplots(1, 2, sharey=True, figsize=(12, 8))
p1 = multiprocessing.Process(target=plot_, args=(axs[0], 0))
p2 = multiprocessing.Process(target=plot_, args=(axs[1], 1))
p1.start()
p1.join()
p2.start()
p2.join()
plt.show()
 

Результаты:
С помощью многопроцессорной обработки

Если я не использую многопроцессорную обработку:

 plot_(axs[0], 0)
plot_(axs[1], 1)
 

Нет многопроцессорной обработки