这里介绍的我的for循环应该每年生成一个图。它应该打印年份,然后显示一个数字。但是发生的是,所有年份都首先被打印,然后所有数字都被打印。
最重要的是。最终打印出一个空图。
我正在使用Spyder作记录。
附有图片以显示输出。
能否请您帮助我了解此处发生的情况,以便将来控制输出?
非常感谢。
df1
答案 0 :(得分:0)
这是没有所有数据的图形的简化版本。
import pandas as pd
import numpy
import matplotlib.pyplot as plt
for i in range(5):
k=2014+i
plt.figure(i)
plt.title(str(k))
plt.ylabel('Number of Crimes')
plt.show()
您额外的空白图表一开始来自plt.figure(0)
。最后只需要执行一次plt.show()
。您可以使用plt.title(<string goes here>)
设置标题。通常,显示内容是对另一个程序的异步调用,因此通常很难预测看到内容的顺序-我对这里的细节不了解spyder。
答案 1 :(得分:0)
Matplotlib有一种无需使用有状态接口即可生成图的方法。这应该可以帮助您循环生成图。
fig, ax = plt.subplots(nrows=2, ncols=1, figsize=(5, 10))
for i, a in enumerate(ax):
a.plot(np.arange(10))
a.set_title(f'test {i}')
查看matplotlib here的面向对象API