【发布时间】:2021-12-24 20:33:22
【问题描述】:
我按照here 描述的答案根据行号绘制数据框。数据框如下所示:
print(df)
Metric Value Metric Value Metric Value Metric Value
0 3 3 7 7
1 1 1 1 1
2 0 0 0 0
3 1 1 1 1
4 512 512 512 512
5 0.04 0.04 0.04 0.04
但是,下面的代码似乎是错误的
row = df.iloc[4]
row.plot(kind='bar') # TypeError: no numeric data to plot
plt.show()
print(row) 节目
Metric Value 512
Metric Value 512
Metric Value 512
Metric Value 512
Name: 4, dtype: object
我该如何解决这个问题?我希望看到 4 个条形图,所有条形图的 y 轴都是 512。
更新:
完整的错误是
TypeError Traceback (most recent call last)
/tmp/ipykernel_512/3965164144.py in <module>
58 row = df.iloc[4]
59 print(row)
---> 60 row.plot(kind='bar')
61 plt.tight_layout()
62 plt.show()
/usr/local/lib/python3.8/dist-packages/pandas/plotting/_core.py in __call__(self, *args, **kwargs)
970 data.columns = label_name
971
--> 972 return plot_backend.plot(data, kind=kind, **kwargs)
973
974 __call__.__doc__ = __doc__
/usr/local/lib/python3.8/dist-packages/pandas/plotting/_matplotlib/__init__.py in plot(data, kind, **kwargs)
69 kwargs["ax"] = getattr(ax, "left_ax", ax)
70 plot_obj = PLOT_CLASSES[kind](data, **kwargs)
---> 71 plot_obj.generate()
72 plot_obj.draw()
73 return plot_obj.result
/usr/local/lib/python3.8/dist-packages/pandas/plotting/_matplotlib/core.py in generate(self)
284 def generate(self):
285 self._args_adjust()
--> 286 self._compute_plot_data()
287 self._setup_subplots()
288 self._make_plot()
/usr/local/lib/python3.8/dist-packages/pandas/plotting/_matplotlib/core.py in _compute_plot_data(self)
451 # no non-numeric frames or series allowed
452 if is_empty:
--> 453 raise TypeError("no numeric data to plot")
454
455 self.data = numeric_data.apply(self._convert_to_ndarray)
TypeError: no numeric data to plot
【问题讨论】:
-
我更新了我的答案。请问您的 Pandas 版本是什么?
-
根据
print(pd.__version__),是1.3.3。 -
下面的情节不是你想象的那样?
-
是的,我想看看,但仍然得到同样的错误。我已经用完整的错误报告更新了帖子。
-
试试
row.astype(int).plot(kind='bar')