防止使用seaborn与pandas绘图重叠的栏

时间:2016-03-23 17:58:21

标签: pandas matplotlib ipython seaborn

我正在尝试使用pandas plotting创建一个带有seaborn导入的堆叠水平条形图。我想删除栏之间的空格,但也没有栏重叠。这就是我尝试过的:

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笔记本中的导入,这可能吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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