2016-06-30 13 views
2

私はいくつかのデータをプロットするためにパンダを使用しています。同じプロットのバープロット/ラインプロット、バープロットの前に異なる軸とラインプロット

私はこれをプロットした場合:

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame({'a': [100, 200, 150, 175], 
        'b': [430, 30, 20, 10]}) 
fig, ax1 = plt.subplots(figsize=(15, 10)) 
df['b'].plot(kind='bar', color='y') 
df['a'].plot(kind='line', marker='d') 

すべてがうまくプロットします。

GoodGraph

私は二軸上のバー軸をプロットした場合、バーグラフは次のように、見ているから行を妨げ、ラインプロットの前になります。

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame({'a': [100, 200, 150, 175], 
        'b': [430, 30, 20, 10]}) 
fig, ax1 = plt.subplots(figsize=(15, 10)) 
df['b'].plot(kind='bar', color='y', secondary_y=True) 
df['a'].plot(kind='line', marker='d') 

SadGraph

私はパンダを使用して...

  • バーグラフ/ラインプロットを作るにはどうすればよい/
  • バープロットをmatplotlibの二軸とラインチャート上でオンになっています主軸
  • 棒グラフの前に線のプロットがあります
+0

Iは、 '' Dataframe'のプロット() '関数も' zorder'キーワードを持っていると仮定する。あなたは2番目の例でそれをいくらか高い価値に設定しようとすることができます。 – Bart

+0

うーん...それは考えていませんでした。しかし、それはまだ動作しているようには見えません。私はそれが両方の左のY軸にプロットされているが、右のY軸にプロットされたものが常に上にあるときに動作することが分かります。右のy軸にバーがあるのが本当に好きなので、私の上司はいつも見たのと同じことを見ています。 – Charles

答えて

1

主軸に直線を置くことができます。

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame({'a': [100, 200, 150, 175], 
        'b': [430, 30, 20, 10]}) 
fig, ax1 = plt.subplots(figsize=(15, 10)) 
df['b'].plot(kind='bar', color='y') 
df['a'].plot(kind='line', marker='d', secondary_y=True) 

enter image description here

あるいは、twinx()と二つの軸ax1ax2を作成します。

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame({'a': [100, 200, 150, 175], 
        'b': [430, 30, 20, 10]}) 
fig, ax1 = plt.subplots(figsize=(15, 10)) 
ax2 = ax1.twinx() 
df['b'].plot(kind='bar', color='y', ax=ax1) 
df['a'].plot(kind='line', marker='d', ax=ax2) 
ax1.yaxis.tick_right() 
ax2.yaxis.tick_left() 

enter image description here

+0

ding ding ding ...ありがとうございます。 – Charles

関連する問題