pandas 使用轴打印时的问题AttributeError:“NoneType”对象没有属性“rowspan”

bzzcjhmw  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(146)

我有这个df:

DATE  CODE    PP
0     1964-01-01  109014  0.5
1     1964-01-02  109014  1.1
2     1964-01-03  109014  2
3     1964-01-04  109014  NaN
4     1964-01-05  109014  3
         ...     ...  ...
21616 2023-03-08  109014  0.0
21617 2023-03-09  109014  2.3
21618 2023-03-10  109014  2.9
21619 2023-03-11  109014  5.1
21620 2023-03-12  109014  5.8

我想在同一个图像中绘制7个图形条形图,所以我做了以下代码:

#______________________________________________________________________________
fig1 = plt.figure('Time Series', figsize=(30,15), dpi=400)

ax1 = fig1.add_axes([0.15, 0.86, 0.75, 0.10])
ax2 = fig1.add_axes([0.15, 0.74, 0.75, 0.10])
ax3 = fig1.add_axes([0.15, 0.62, 0.75, 0.10])
ax4 = fig1.add_axes([0.15, 0.50, 0.75, 0.10])
ax5 = fig1.add_axes([0.15, 0.38, 0.75, 0.10])
ax6 = fig1.add_axes([0.15, 0.26, 0.75, 0.10])
ax7 = fig1.add_axes([0.15, 0.14, 0.75, 0.10])

axes=[ax1,ax2,ax3,ax4,ax5,ax6,ax7]
codes=list(df['CODE'].drop_duplicates())

for axe,code in zip(axes,codes):
    print(axe,code)
    data=df.loc[df['CODE']==code]
    data.plot('DATE',"PP",kind='area', color=colors, alpha=1, linestyle='None', ax=axe)

当我运行时,我得到了这个错误:AttributeError: 'NoneType' object has no attribute 'rowspan'
我的代码运行得很好,但是自从我用“conda upgrade all”更新了所有内容后,现在当我绘制定义轴的图形时,我经常会在所有图形中看到这个消息。
你知道如何解决这个问题吗?或者为什么这个错误不断出现。
先谢了。

w46czmvw

w46czmvw1#

您可以尝试此方法:

import pandas as pd
import matplotlib.pyplot as plt

import pandas as pd

data = {'DATE': ['2023-03-01', '2023-03-02', '2023-03-03', '2023-03-04', '2023-03-05', '2023-03-06', '2023-03-07', '2023-03-08', '2023-03-09', '2023-03-10', '2023-03-11', '2023-03-12'],
        'CODE': [10001, 10002, 10003, 10004, 10005, 10006, 10007, 10001, 10002, 10003, 10004, 10005],
        'PP': [0.5, 1.1, 2.0, None, 3.0, 1.5, 2.2, 0.0, 2.3, 2.9, 5.1, 5.8]}
df = pd.DataFrame(data)

colors = ['red', 'blue', 'green', 'orange', 'purple', 'brown', 'gray']

fig, axes = plt.subplots(nrows=7, ncols=1, figsize=(10, 20))

codes = df['CODE'].unique()
for ax, code, color in zip(axes, codes, colors):
    data = df.loc[df['CODE'] == code]
    data.plot('DATE', 'PP', kind='area', color=color, alpha=1, linestyle='None', ax=ax)
    ax.set_title('Code {}'.format(code))
    ax.set_xlabel('Date')
    ax.set_ylabel('PP')

plt.tight_layout()
plt.show()

相关问题