【发布时间】:2021-10-26 06:51:07
【问题描述】:
我编写了一个非常简单的代码,我在其中询问用户输入。如果用户输入"y" 我想绘制一个折线图。如果用户键入"n",则循环中断。
我正在使用 Spyder IDE,我希望将折线图绘制在单独的窗口上,以便使用工具栏缩放和导航绘图。
我遇到了这个问题,每当我绘制绘图窗口时都会冻结并崩溃(如图所示):
这是我写的代码:
import random
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
def plot_random():
x1 = np.linspace(0,100,100)
y1 = np.random.rand(100)
title = 'Title of the plot'
sns.set_style("whitegrid")
plt.ion()
line_plot = sns.lineplot(x=x1, y=y1)
line_plot.set_title(title)
line_plot.set(xlabel='xlabel', ylabel='ylabel')
plt.show()
plt.pause(5)
while True:
plotTF = input('Do you want to plot? (Y/N) ').lower()
if plotTF == 'n':
break
elif plotTF == 'y':
plot_random()
else:
print('Not a valid entry')
在添加 plt.pause(5) 之前,甚至没有绘制图表,但它弹出了一个白色的绘图窗口,该窗口立即崩溃。
现在它在 5 秒后绘图并崩溃。
我希望情节一直保持“可缩放”和“可导航”,直到用户提供其他输入。
我该如何解决这个问题?
【问题讨论】:
-
@riccado,你为什么不在 matplotlib 中使用动画?
-
@user1740577 这可能是解决方案,但我是 python 新手,我从未使用过它。我试过但没有工作结果。你能告诉我一些有用的例子吗?谢谢!
-
这个答案对你有帮助吗? stackoverflow.com/questions/43445103/…
标签: python python-3.x matplotlib plot seaborn