Python 3.x Python:Pickle.load函数返回正确的三维散点图,但不再是交互式的
这是我在这里的第一个问题,所以请让我知道我是否应该在问题的表述、代码等方面做出任何改进 因此,我正在用Python创建几个三维散点图,并希望为以后的重用和可比性保护它们。我在Spyder中使用Qt5作为图形后端,它完美地显示了使用原始代码的交互式(因此我可以在轴上旋转并翻转绘图)三维散点图。 现在,我能够成功保存创建的绘图,并将其加载到新脚本中,该脚本也会在Qt5中打开绘图但不知何故,互动性消失了,这意味着我无法在轴上旋转并翻转绘图。 我找不到任何关于这个问题的指导,也找不到任何有类似问题的人。你们知道吗?我将把示例代码的相关部分放在下面: “第一个脚本” “第二个脚本” 你知道为什么互动性消失了吗?根据pickle库和其他用例,这不会发生Python 3.x Python:Pickle.load函数返回正确的三维散点图,但不再是交互式的,python-3.x,matplotlib,plot,pickle,scatter3d,Python 3.x,Matplotlib,Plot,Pickle,Scatter3d,这是我在这里的第一个问题,所以请让我知道我是否应该在问题的表述、代码等方面做出任何改进 因此,我正在用Python创建几个三维散点图,并希望为以后的重用和可比性保护它们。我在Spyder中使用Qt5作为图形后端,它完美地显示了使用原始代码的交互式(因此我可以在轴上旋转并翻转绘图)三维散点图。 现在,我能够成功保存创建的绘图,并将其加载到新脚本中,该脚本也会在Qt5中打开绘图但不知何故,互动性消失了,这意味着我无法在轴上旋转并翻转绘图。 我找不到任何关于这个问题的指导,也找不到任何有类似问题的人。
非常感谢。这能回答您的问题吗@乔:不,没有。同样的(未回答的)问题。相应的功能请求是无效的,但不幸的是,它没有。我从那篇文章中得到了pickle功能等等。然而,正如所描述的,我并没有以一个交互式图形用户界面结束,而只是以一个没有交互的三维散点图的“图片”结束……我尝试了,也没有成功。也许我的第一个评论不清楚。你不需要继续尝试。目前这是不可能的。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import pandas as pd
import pickle
testdf = pd.DataFrame({"X" : x, "Y" : y, "Z" : z}) #x and y are the criteria, z the values, stored as lists
# Create 3d scatter plot
fig = plt.figure(figsize=(12, 12))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(x, y, z, c=z, marker="o")
ax.set_xlabel("Initial Notional Cluster")
ax.set_ylabel("Laufzeit in Month Cluster")
ax.set_zlabel("Vol. Weighted Margin")
plt.show()
# Save the figure object as binary file
file = open(r"Init_Lfz_VolWeightedMargin.pkl", "wb")
pickle.dump(fig, file)
file.close()
import matplotlib.pyplot as plt
figx = pickle.load(open(r"Init_Lfz_VolWeightedMargin.pkl", "rb"))
plt.show()