gpt4 book ai didi

python - 如何知道用 pandas 用 python 完成的图表的图形引用?

转载 作者:行者123 更新时间:2023-11-30 22:40:35 25 4
gpt4 key购买 nike

我需要迭代用 matplotlib 完成的几个图形。只有其中一张图是通过 Pandas 可视化“直接”完成的。下面的代码将展示一个只有 2 个图的示例,一个是使用 matplotlib API 完成的,另一个是直接使用 Pandas 完成的。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

dates = pd.date_range('20000101', periods=10)
df = pd.DataFrame(index=dates)
df['A'] = np.cumsum(np.random.randn(10))
df['B'] = np.random.randint(-1,2,size=10)
df['i'] = range(1,11)

# first figure done with matplotlib API
fig1 = plt.figure()
ax1 = plt.subplot2grid((5,1),(0,0), rowspan=5, colspan=1)
ax1 = ax1.plot(df.A)


# second figure done with pandas
fig2 = plt.figure()
ax_bar = df[df.columns].tail(1).plot(kind='bar',legend=True)
ax_bar.xaxis.set_visible(False)

如果你运行这段代码,你实际上会得到 3 个数字。

第一个图是正确的Fig1,第二个图是空白的Fig2,第三个图是ax_bar图表。

type(ax_bar) 为您提供 matplotlib.axes._subplots.AxesSubplot

所以我的问题是,我如何知道或定义与 ax_bar 图关联的图形的名称?

因为目标是最终可以迭代所有数字,所以例如:

figures = [fig1,fig2],因此 figures 是一个列表,可以迭代它(以便能够完成另一个需要完成的过程) ,但这目前无法完成,因为Fig2是空白的,我不知道如何调用用pandas完成的图。

最佳答案

您可以使用plt.gcf()使用 Pandas 绘图后获取当前图形:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

dates = pd.date_range('20000101', periods=10)
df = pd.DataFrame(index=dates)
df['A'] = np.cumsum(np.random.randn(10))
df['B'] = np.random.randint(-1,2,size=10)
df['i'] = range(1,11)

# first figure done with matplotlib API
fig1 = plt.figure()
ax1 = plt.subplot2grid((5,1),(0,0), rowspan=5, colspan=1)
ax1 = ax1.plot(df.A)

# second figure done with pandas
ax_bar = df[df.columns].tail(1).plot(kind='bar',legend=True)
ax_bar.xaxis.set_visible(False)
fig2 = plt.gcf() # <- use this

figures = [fig1,fig2]
for fig in figures:
print(fig)

结果:

>>> for fig in figures:
... print(fig)
...
Figure(640x440)
Figure(640x440)

关于python - 如何知道用 pandas 用 python 完成的图表的图形引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com