簡體   English   中英

從 Pandas 多級 dataframe 制作 Plot 條

[英]Make a Plot Bar from Pandas multilevel dataframe

我在嘗試從 pandas dataframe 制作酒吧 plot 時遇到了麻煩,這應該很容易,但我無法讓它工作。 我有一個看起來像這樣的 dataframe:

數據A 資料 B 數據 C
時間戳
06:54:00 0.1 0.2 0.3

但是,我有 99 列,而不是 3 列數據。關鍵是我正在嘗試做一個條形 plot,在 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)

但是它們都不起作用,我認為問題出在我的 dataframe 的格式上,因為“時間戳”列。 但是,我還沒有設法刪除它,我嘗試了:

data = data.droplevel('timestamp')

和:

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

但他們都沒有工作。 有人可以幫幫我嗎?

這回答了你的問題了嗎?

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

在此處輸入圖像描述

我終於設法解決了。

我所做的是:

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

獲取沒有時間戳的新 dataframe。 然后:

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

謝謝你們,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM