【问题标题】:why plt.show() shows one extra blank figure为什么 plt.show() 显示一个额外的空白图形
【发布时间】:2017-08-31 09:58:31
【问题描述】:

我使用 python 2.7 并尝试绘制一个简单的百分位蝙蝠图。

我得到了我想要的图形,问题是,当使用 plt.show() 时,我得到一个额外的空白图像,

我尝试了 plt.close()、plt.clf() 和 plt.figure() 来创建一个干净的 plt 对象,这是我的功能:

import matplotlib.pyplot as plt
plt.grid(True)
data = zip(*percentiles)

data = [list(i) for i in data]
tick_range = data[0]

ticks = [str(i) + "%" for i in tick_range]
tick_range = [x+2.5 for x in tick_range]

fig, ax = plt.subplots()
plt.bar(data[0], data[1], width=5)

plt.show()

数据(百分位数)变量的结构如下[(i,v),(i,v)....],其中i为索引,v为浮点值。

谢谢!

【问题讨论】:

    标签: python python-2.7 matplotlib plot


    【解决方案1】:

    问题是plt.grid(True) 对当前图形进行操作,由于到达该行时当前不存在图形,因此会自动创建一个。然后你在调用plt.subplots()时创建另一个

    您应该在创建绘图之后添加网格线

    plt.bar(data[0], data[1], width=5)
    plt.grid(True)
    
    plt.show()
    

    或者,只需调用bar 而不调用subplots,因为bar 将根据需要自动创建图形和轴。

    plt.grid(True)
    plt.bar(data[0], data[1], width=5)
    plt.show()
    

    【讨论】:

    • 只有当我执行fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(17, 10))plt.show() 已经给了我一个额外的空白数字!?使用 matplotlib 1.5.3 版。我怎么了!?
    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    相关资源
    最近更新 更多