[英]Having trouble with a Seaborn Plot from a multilevel Pandas Dataframe
[英]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 = 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.