并排绘制条形图

Plotting bar charts side by side

我可以并排绘制这两个侧条形图吗

import pandas as pd

a=[('Female','0'),
('Female','0'),
('Female','0'),
('Female','1'),
('Female','1'),
('Female','1'),
('Female','1'),
('Female','1'),
('Female','1'),
('Female','1'),
('Female','1'),
('Female','1'),
('Male','0'),
('Male','0'),
('Male','0'),
('Male','0'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1'),
('Male','1')]

df=pd.DataFrame(a,columns=['Gender','Placement_B'])

gender=pd.crosstab(df['Gender'], df['Placement_B'])

g_norm=pd.crosstab(df['Gender'], df['Placement_B'],margins=True, normalize='index')

gender.plot.bar(stacked=True)

g_norm.plot.bar(stacked=True)

这个问题没有说明你使用的是什么包。如果您使用 DataMelt program, you can plot bar charts or histograms side by side by using HPlot canvas, and navigate usibf cd() method. Here are several DataMelt example that show histograms side by side. If you do not like the histogram presentation, use HChart class as shown here

我了解到您在绘制交叉表数据时遇到了问题。这是一种绘制它的方法。

import matplotlib.pyplot as plt

df=pd.DataFrame(a,columns=['Gender','Placement_B'])
gender=pd.crosstab(df['Gender'], df['Placement_B'])
g_norm=pd.crosstab(df['Gender'], df['Placement_B'],margins=True, normalize='index')

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.bar(gender.index.values, gender.iloc[:, 1])
ax1.bar(gender.index.values, gender.iloc[:, 0])
ax2.bar(g_norm.index.values, g_norm.iloc[:, 1])
ax2.bar(g_norm.index.values, g_norm.iloc[:, 0])

# Probably the way that is more relevant for this case

fig, (ax1, ax2) = plt.subplots(1, 2)
gender.iloc[:].plot.bar(stacked=True, ax=ax1)
g_norm.iloc[:].plot.bar(stacked=True, ax=ax2)