【问题标题】:pyplot saving blank image and plt.show() not working [duplicate]pyplot保存空白图像和plt.show()不起作用[重复]
【发布时间】:2021-11-13 06:39:58
【问题描述】:

我正在学习 DataAnlaysis,并正在使用 matplotlib.pyplot
我在 Jupyter 文件中使用 matplotlib.pyplot.bar() 绘制条形图。
我使用plt.show() 来了解这个数字,但它没有产生任何输出。 我尝试保存图,它保存的是空白图像。

奇怪的是,当我将所有代码放在同一个 Notebook cell.. 中时,它可以工作!它保存了图形,plt.show() 也可以正常工作。
但是当我将它们分开到不同的单元格时,它就不会了。

我尝试过重新启动内核并一次性运行所有单元。

这是我的代码..

%matplotlib inline
from matplotlib import pyplot as plt
past_years_averages = [82, 84, 83, 86, 74, 84, 90]
years = [2000, 2001, 2002, 2003, 2004, 2005, 2006]
error = [1.5, 2.1, 1.2, 3.2, 2.3, 1.7, 2.4]
plt.figure(figsize=(10, 8))
plt.bar(range(len(past_years_averages)), past_years_averages, yerr=error, capsize=5)
plt.axis([-0.5, 6.5, 70, 95])
ax = plt.subplot()
ax.set_xticks(range(len(years)))
ax.set_xticklabels(years)
plt.title("Final Exam Averages")
plt.xlabel("Year")
plt.ylabel("Test average")
plt.savefig("my_bar_chart.png")
plt.show()

【问题讨论】:

  • 在笔记本中,给定图形的所有代码必须在同一个单元格中。这是预期的功能。此answer 重复。

标签: python matplotlib


【解决方案1】:

尝试在 colab 中复制您的代码,在单个单元格中运行时确实可以正常工作。

在将代码分隔到不同单元格时得到空白输出的原因是: 只要运行包含plt.axis 的单元格,就会生成绘图。 之后,所有的操作都在轴上进行,谁的轴?未指定,因此创建了一个新的绘图窗口(这给出了一个空白绘图)。

我建议您在单个单元格中运行绘图语句,因为一旦运行与 matplotlib 相关的内容,colab 就会显示输出,从而使先前绘图的轴无法访问。并且所有后续操作都在一个新的图形上运行。

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2020-07-25
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 2018-03-26
    • 2022-07-07
    相关资源
    最近更新 更多