0
我有一個數據幀,看起來像這樣:matplotlib分類條形圖產生不必要的空格
import numpy as np
import pandas as pd
location = list(range(1, 34))
location += [102, 172]
stress = np.random.randint(1,1000, len(location))
group = np.random.choice(['A', 'B'], len(location))
df = pd.DataFrame({'location':location, 'stress':stress, 'group':group})
df[['location', 'group']] = df[['location', 'group']].astype(str)
注:location
和group
都是字符串
我試圖創造出一個柱狀圖中,這樣location
(分類)位於x軸上,並且stress
是每個小節的高度。此外,我要的顏色各條以不同顏色爲每個group
我已經試過如下:
f, axarr = plt.subplots(1, 1)
axarr.bar(df['location'], df['stress'])
plt.xticks(np.arange(df.shape[0]) + 1, df['location'])
plt.show()
然而,這將產生:
我不知道爲什麼終端欄之間有空白。我猜它是因爲location
中的102
和172
值,但是,該列是一個字符串,所以我期待它被視爲分類變量,並且所有的小節不管location
「值」 。我試圖通過手動指定XTICK位置和標籤來糾正這一點,但它似乎沒有工作
最後,有一個快速的方法來通過顏色各group
酒吧,而無需在每個獨特group
值手動循環?