gpt4 book ai didi

python - 创建一个绘图,将其保存到文件,然后加载该文件并在 matplotlib 中的新绘图旁边绘图

转载 作者:行者123 更新时间:2023-11-30 22:25:33 26 4
gpt4 key购买 nike

我想在 matplotlib 中创建一个条形图:

fig, ax = plt.subplots()
oldbar = ax.bar(x=ind, height=y, width=width)

然后我想将此条形图腌制到文件(字典或轴 - 我不确定哪个是正确的):

pickle.dump(oldbar, file('oldbar.pkl', 'w'))  

然后我想重新加载此文件,然后将旧条形图绘制到新条形图旁边,这样我就可以在单个轴上比较它们:

fig, ax = plt.subplots()
newbar = ax.bar(x=ind, height=y, width=width)
oldbar = pickle.load(file('oldbar.pkl'))

# I realise the line below doesn't work
ax.bar(oldbar)

plt.show()

理想情况下,我想将它们呈现如下。关于我如何解决这个问题有什么建议吗?

enter image description here

最佳答案

你会腌制人物而不是其中的艺术家。

import matplotlib.pyplot as plt
import numpy as np
import pickle

ind = np.linspace(1,5,5)
y = np.linspace(9,1,5)
width = 0.3


fig, ax = plt.subplots()
ax.bar(x=ind, height=y, width=width)
ax.set_xlabel("x label")

pickle.dump(fig, file('oldbar.pkl', 'w'))

plt.close("all")

ind2 = np.linspace(1,5,5)
y2 = np.linspace(8,2,5)
width2 = 0.3


fig2 = pickle.load(file('oldbar.pkl'))
ax2 = plt.gca()

ax2.bar(x=ind2+width, height=y2, width=width2, color="C1")

plt.show()

但是,腌制数据本身可能更有意义。

import matplotlib.pyplot as plt
import numpy as np
import pickle

ind = np.linspace(1,5,5)
y = np.linspace(9,1,5)
width = 0.3

dic = {"ind":ind, "y":y, "width":width}

pickle.dump(dic, file('olddata.pkl', 'w'))

### new data
ind2 = np.linspace(1,5,5)
y2 = np.linspace(8,2,5)
width2 = 0.3

olddic = pickle.load(file('olddata.pkl'))

fig, ax = plt.subplots()
ax.bar(x=olddic["ind"], height=olddic["y"], width=olddic["width"])
ax.bar(x=ind2+olddic["width"], height=y2, width=width2)
ax.set_xlabel("x label")
plt.show()

关于python - 创建一个绘图,将其保存到文件,然后加载该文件并在 matplotlib 中的新绘图旁边绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47499297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com