我试图将以下数据绘制为水平堆叠条形图。我想展示第1周和第2周,在顶部有最大的酒吧大小(“总数”),然后向下下降。实际数据是100行,所以我使用了带有kind='bar'的Seaborn CATPlot。我不确定是否可以堆叠(如Matplotlib),因此我选择创建两个图表,并将“第1周”覆盖在“总计”之上,以获得相同的堆叠效果
然而,当我运行下面的程序时,我得到了两个单独的图,图表标题和轴是一对一的图形。我是否能够将其组合成一个堆叠的水平图表。如果是比较容易的方法,那么感谢您的帮助
(从随机名称生成器创建的名称)
代码:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
data = pd.read_csv('Sample1.csv', delimiter="\t", error_bad_lines=False)
data_rank = data.sort_values(["Attending", "Company"], ascending=[False,True])
sns.set(style="ticks")
g = sns.catplot(y='Company', x='Total', data=data_rank, kind='bar', height=4, color='red', aspect=0.8, ax=ax)
ax2 =ax.twinx()
g = sns.catplot(y='Company', x='Week 1', data=data_rank, kind='bar', height=4, color='blue', aspect=0.8, ax=ax2)
for ax in g.axes[0]:
ax.xaxis.tick_top()
ax.xaxis.set_label_position('top')
ax.spines['bottom'].set_visible(True)
ax.spines['top'].set_visible(True)
plt.title("Company by week ", size=7)
我认为这样做是可行的
相关问题 更多 >
编程相关推荐