Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                                                                                            
                
        
假设我有一个数据框,其中一栏为“性别”,其中包含-

male
female
female
empty
male
female


如何使用matplotlib以条形图或饼图的形式可视化此数据,以显示男性和女性的数量/百分比?

最佳答案

最简单的选择可能是在列上使用value_count并将结果绘制为条形图。

import pandas as pd
import matplotlib.pyplot as plt

a = ["male","female", "female", "empty","male","female"]
df = pd.DataFrame(a, columns= ["gender"])

df["gender"].value_counts().plot.bar()

plt.show()


python - 可视化来自一列的数据-LMLPHP

同样有可能绘制饼图,

df["gender"].value_counts().plot.pie()
plt.gca().set_aspect("equal")


python - 可视化来自一列的数据-LMLPHP

允许进行更精细调整的另一个选项是使用matplotlib,如下所示:

import pandas as pd
import matplotlib.pyplot as plt

a = ["male","female", "female", "empty","male","female"]
df = pd.DataFrame(a, columns= ["gender"])

labels = []
for i, dfi in enumerate(df.groupby(["gender"])):
    labels.append(dfi[0])
    plt.bar(i, dfi[1].count(), label=dfi[0])
plt.xticks(range(len(labels)), labels)
plt.legend()
plt.show()


python - 可视化来自一列的数据-LMLPHP

10-08 06:56
查看更多