如何在Python中绘制二进制彩色直方图?

如何在Python中绘制二进制彩色直方图?,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我正在做一个有几个数量变量的二元分类项目。我想在探索性分析阶段绘制一个柱状图,如下所示。然而,在网上研究了两天之后,我仍然可以用Python找到一个解决方案 在R中,我知道如何使用单行代码:ggplottrain,aesvar_x,fill=var_y。对于Python,任何人都可以告诉我matplotlib或seaborn的等效语法 要获得像seaborn中那样的重叠条形图,它比R中的单行代码稍微复杂一些 实际上,您需要创建两个绘图,一个用于“背景”,另一个用于“前景” stacked_bar

我正在做一个有几个数量变量的二元分类项目。我想在探索性分析阶段绘制一个柱状图,如下所示。然而,在网上研究了两天之后,我仍然可以用Python找到一个解决方案

在R中,我知道如何使用单行代码:ggplottrain,aesvar_x,fill=var_y。对于Python,任何人都可以告诉我matplotlib或seaborn的等效语法


要获得像seaborn中那样的重叠条形图,它比R中的单行代码稍微复杂一些

实际上,您需要创建两个绘图,一个用于“背景”,另一个用于“前景”

stacked_bar_data["total"] = stacked_bar_data.Series1 + stacked_bar_data.Series2 # Creates 'total column of two series you're interested in.


#Plot 1 - background - "total" (top) series
sns.barplot(x = stacked_bar_data.Group, y = stacked_bar_data.total, color = "blue")

#Plot 2 - overlay - "bottom" series
bottom_plot = sns.barplot(x = stacked_bar_data.Group, y = stacked_bar_data.Series1, color = "red")


topbar = plt.Rectangle((0,0),1,1,fc="red", edgecolor = 'none')
bottombar = plt.Rectangle((0,0),1,1,fc='#0000A3',  edgecolor = 'none')
l = plt.legend([bottombar, topbar], ['Bottom Bar', 'Top Bar'], loc=1, ncol = 2, prop={'size':16})
l.draw_frame(False)
上述代码取自:

您是否尝试了plt.hist?另请参见