首页 > 解决方案 > 没有要绘制的数字数据

问题描述

我试图在下面绘制我的图表,但它向我展示了这个问题:“TypeError:没有要绘制的数字数据”,下面是我的代码:

def plot_activity(event, df):
data = df[df['event'] == event][['pose2d_1', 'pose2d_2', 'pose2d_3', 'pose2d_4', 'pose2d_5', 'pose2d_6', 'pose2d_7', 'pose2d_8', 'pose2d_9', 'pose2d_10', 'pose2d_11', 'pose2d_12', 'pose2d_13', 'pose2d_14', 'pose2d_15', 'pose2d_16', 'pose2d_17', 'pose2d_18', 'pose2d_19', 'pose2d_20', 'pose2d_21', 'pose2d_22', 'pose2d_23', 'pose2d_24', 'pose2d_25', 'pose2d_26']][:200]
axis = data.plot(subplots=True, figsize=(16, 12), 
                 title=event)
for ax in axis:
    ax.legend(loc='lower left', bbox_to_anchor=(1.0, 0.5))

plot_activity("WatchTV", p2d);

我认为可能是我的数据框得到了如下图所示的字符串数据类型导致了问题,但如果是,我可以知道解决方案是什么吗?

我的数据框

标签: pythonpandasdataframematplotlib

解决方案


首先,检查数据框中的任何 nan 值:

print(data[data.isna().any(axis=1)])

根据您的情况,您可能希望完全删除它们或执行其他操作。如果要删除 na 值:

data = data.dropna()

接下来是检查哪些列不被视为浮点数(具有对象类型):

print(data.info())

同样,这一切都取决于您的数据/情况。如果任何列都没有问题,您可以将它们转换为浮点数:

data = data.astype('float')

推荐阅读