2016-11-02 13 views
0

棒グラフiが2列パンダ大きなデータグループX軸

+----------+------------+ 
|  id| orders  | 
+----------+------------+ 
| 1  | 1100  | 
| 2  | 22753  | 
| 3  | 34   | 
| 4  | 11   | 
| 5  | 430  | 
| 6  | 1175  | 

| ...  | ..   | 
| 800  | 17   | 
+----------+------------+ 

が含まパンダ・データ・フレーム中のAAテーブルを持っています1-100,100-200,200-300というように700から800まで、

とy軸方向のそれぞれの総受注

、私を助けて私は

を使用していてください

matplotlib.pyこれのためのパッケージ。

iは

fig = plt.figure(figsize=(17, 6)) # Create matplotlib figure 
ax = fig.add_subplot(111) # Create matplotlib axes 

width = 0.2 

df.orders.plot(kind='bar', color='red', ax=ax, width=width, position=1) 

ax.legend() 
plt.show() 

occurancesが誤っているこのコードを実行しようとした、オーダー occurances is by mistake,consider it as orders

+0

df.plot(kind = 'bar'、color = 'red'、ax = ax、width = width、position = 1)。これを試すことができますか? – Backtrack

+0

@Backtrack私はそれを試みましたが、x軸上では、1から800までの別個のバーがあります。これは適切ではありません。私は1-100,100-200などのグループでそれを使います。 –

+0

新しい 'dataframe'を作成し、これは8行とそれに対応する次数の合計を持ちます。 – jbndlr

答えて

0

あなたがプロットされる集約情報を保持している新しいDataFrameを作成することができますようにそれを検討してください。この例では、私はランダムに生成されたデータを使用します。

# Build example DataFrame 
n_ids = 800 
ids = [] 
ods = [] 
for i in range(1, n_ids + 1): 
    ids.append(i) 
    ods.append(random.randint(5, 20000)) 

df = pd.DataFrame({'id': ids, 'orders': ods}) 

をこのデータフレームは、あなたと同じ構造を有しています。各idが属するとsum()を使用してordersを集約(あなたが尋ねたとして)100chunk_sizeを使用して、あなたは簡単にチャンク(またはグループ)を計算することができます

# Group by chunks 
chunk_size = 100 

# Add new column 'chunk' to describe groups 
df['chunk'] = [int((i - 1)/chunk_size) + 1 for i in df['id']] 
# Group, aggregate and store as new DataFrame 
pdf = pd.DataFrame(df.groupby(['chunk'])['orders'].sum()) 

pdfと呼ばれる新しいDataFrameはその後のようになります。この:

:あなたが前にしようとしたとして

 orders 
chunk   
1  937595 
2  987138 
3  1109390 
4  1097058 
5  1039206 
6  1060363 
7  999461 
8  1086585 

さて、あなたは、単に集計値をプロットすることができます

# Plot aggregates 
fig = plt.figure(figsize=(17, 6)) 
ax = fig.add_subplot(111) 

width = 0.2 

pdf.orders.plot(kind='bar', color='red', ax=ax, width=width, position=1) 

ax.legend() 
plt.show() 

乾杯。