2016-03-23 6 views
2

シーバンインポートで積み上げられた水平のバープロットを作成するために、パンダプロットを使用しようとしています。私はバー間のスペースを削除したいと思いますが、バーが重なっていません。パンダプロットでシーボーンを使用して重なり合うバーを防ぐ

import pandas as pd 
import numpy as pd 
import seaborn as sns 

df = pd.DataFrame(np.random.rand(15, 3)) 
df.plot.barh(stacked=True, width=1) 

enter image description here

これはseabornをインポートせずに動作しているようですが、私はseabornのスタイルが好きで、それは通常、私はこの中で働いていますipythonのノートブックのインポートですが、これは私が試したものです可能?

+0

* *「私はバーの間のスペースを削除するだけでなく、バ​​ーが重なっていないしたいと思います」 - >それはあなたが投稿した画像は、それらを満たしていないどのように私にははっきりしていません基準。 –

+0

プロットを注意深く見てください。たとえば、4の赤い部分がその下のバーと重なっています。これは、より多くのバーを持つプロットではより顕著になり、十分なバーではほとんど判読できなくなります。 – johnchase

+0

'dpi'パラメータを高く設定してFigureを保存するとどうなりますか? –

答えて

4

何seabornスタイルにバー線幅を設定した場合は、このアーティファクトはまた、matplotlibのは、デフォルトで表示されているがあります。

import pandas as pd 
import numpy as np 

df = pd.DataFrame(np.random.rand(15, 3)) 
df.plot(stacked=True, width=1, kind="barh", lw=.5) 

enter image description here

ソリューションは、バック大体どこに小節線を増やすことであろうmatplotlibのデフォルトは以下のとおりです。

import pandas as pd 
import numpy as np 
import seaborn as sns 

df = pd.DataFrame(np.random.rand(15, 3)) 
df.plot(stacked=True, width=1, kind="barh", lw=1) 

enter image description here

+0

興味深いことに、この問題は私が指定した線幅に関係なく消え去っているようです。これは問題を解決しますが、ありがとうございます。 – johnchase

2

おそらく線幅を減らすべきでしょうか?

import seaborn as sns 

f, ax = plt.subplots(figsize=(10, 10)) 
df.plot(kind='barh', stacked=True, width=1, lw=0.1, ax=ax) 

enter image description here

関連する問題