创建后更新绘图

时间:2017-02-25 14:34:42

标签: python matplotlib

在关于Python的教科书中,我正在阅读: “图表的每个视觉方面都可以从默认值中更改。您可以在创建绘图时指定这些;大多数也可以在以后更改。”

所以创建一个.py文件

# simple_plot.py
import numpy as np, matplotlib.pyplot as plt
num_points = 5
x_min, x_max = 0, 4
5 x_values = np.linspace(x_min, x_max, num_points)
y_values = x_values**2
plt.plot(x_values, y_values)

并运行它,给出了所需的情节。 现在输入控制台,例如

plt.plot(x_values,y_values,'r--o')

绘制一条红色虚线,每个点都有红色圆圈。 但是我无法理解为什么在控制台中输入(而不是在最初创建的脚本中添加指令),就像

一样
plt.title("My first plot", size=24, weight='bold')
plt.xlabel("speed")
plt.ylabel("kinetic energy")

不会更新情节。 非常感谢你。

1 个答案:

答案 0 :(得分:1)

我假设您通过在IPython控制台中调用myscript.py并激活run myscript.py选项来运行您的脚本(让我们称之为%matplotlib inline)。

这将根据需要将图形绘制到控制台中。然而,一旦绘制了图形,您就会松开对它的引用。调用plt.plot(x_values,y_values,'r--o')会创建一个新数字,plt.title(..)会创建另一个数字。

您可以做的一件事是以面向对象的方式开展更多工作。即创建数字并在myscript.py文件中保留引用,如下所示:

import numpy as np, matplotlib.pyplot as plt
num_points = 5
x_min, x_max = 0, 4
x_values = np.linspace(x_min, x_max, num_points)
y_values = x_values**2

fig, ax = plt.subplots()
ax.plot(x_values, y_values)

然后在控制台中输入

ax.set_title("My Title")
ax.set_xlabel("MyLabel")

并随时在您输入fig时显示带有更新属性的图。

enter image description here