如何用Plotly绘制含两列数据的合并直方图
合并两列分类数据的直方图绘制方案
先看你的数据结构:
import pandas as pd df = pd.DataFrame({'_3321131460': ['col1', 'col1', 'col2'], '_3952604542': ['col1', 'col2', 'col2']})
要实现两列数据的直方图合并展示(X轴对应列名、图例为分类、Y轴为计数),可以用以下两种常用方法:
方法1:Matplotlib 分组柱状图
先把数据转成长格式并统计计数,再绘图:
import matplotlib.pyplot as plt # 转换为长格式,便于分组统计 df_long = df.melt(var_name='数据列', value_name='类别') count_df = df_long.groupby(['数据列', '类别']).size().unstack(fill_value=0) # 绘制分组柱状图 count_df.plot(kind='bar', figsize=(8, 5)) plt.xlabel('数据列') plt.ylabel('计数') plt.title('两列分类数据计数对比') plt.legend(title='类别') plt.xticks(rotation=0) # 保持X轴标签水平 plt.show()
方法2:Seaborn 计数图
Seaborn的countplot可以直接处理长格式数据,代码更简洁:
import seaborn as sns plt.figure(figsize=(8, 5)) sns.countplot(data=df_long, x='数据列', hue='类别') plt.xlabel('数据列') plt.ylabel('计数') plt.title('两列分类数据计数对比') plt.show()
两种方法都能生成符合要求的图表:X轴显示两个数据列,不同颜色的柱子对应col1/col2类别,Y轴展示对应类别的出现次数。
内容的提问来源于stack exchange,提问作者lima
相关产品推荐
相关产品推荐

