python - 使用 matplotlib 子图进行多处理不起作用
问题描述
我想用模块加快我的进程,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)
解决方案
推荐阅读
- c - 从 A 中提取某些位并仅替换 B 中某个位置的那些提取位
- python - 如何在 Python 中导入 lib.sort
- python - ping 命令的 Python 包装器在收到 pong 时停止
- flutter - 应用启动时如何清除应用缓存
- android - Text to Speech 不能在 API 级别 30 中工作,而不是英语
- c++ - CreateRemoteThread 适用于 PROCESS_QUERY_LIMITED_INFORMATION
- ios - 无法在 Xcode 12 上启动“PRODUCT_NAME”
- bash - 使用 Docker Go SDK 时如何打印“bash -xc”命令?
- go - 在 select 内发送到另一个通道会造成死锁
- arrays - 如果数组中的两个连续数字相等,如何缩小数组然后删除一个并增加另一个