从 Pandas 多级数据框制作一个绘图栏

Make a Plot Bar from Pandas multilevel dataframe

我在尝试从 pandas 数据框制作条形图时遇到了麻烦,这应该很容易,但我做不到。 我有一个看起来像这样的数据框:

Data A Data B Data C
timestamp
06:54:00 0.1 0.2 0.3

但我有 99 列,而不是 3 列数据。 关键是我正在尝试绘制一个条形图,在 x 轴上表示不同的数据,在 y 轴上表示值。

我试过:

p = data.hvplot.bar(x = 'Data', y = 'Units', rot = 90)

p = data.plot(kind='bar', title="Data", figsize=(15, 10), legend=True, fontsize=12)

但是其中 none 正在工作,我认为问题出在我的数据框的格式上,因为列 'timestamp'。 但是,我没有删除它,我试过了:

data = data.droplevel('timestamp')

并且:

data = data.drop(['timestamp'], axis=1)

但其中 none 个正在运行。有人可以帮助我吗?

这是否回答了您的问题?

new_df = df.melt(var_name="Data")
new_df.plot(kind='bar', x='Data', y='value')

终于解决了

我所做的是:

new_df = data.melt(var_name="Data")

获取没有时间戳的新数据框。 那么:

titles = new_df['Data'].to_list()

values = new_df['value'].to_list()

获取两个列表,一个包含标题,另一个包含值。

然后我用以下代码绘制图表:

p = figure(x_range=titles, height=500, width=1500, title="Unit",
           toolbar_location=None, tools="")

p.vbar(x=titles, top=values, width=0.6)

p.xgrid.grid_line_color = None
p.xaxis.major_label_orientation = "vertical"
p.y_range.start = 0

谢谢大家,