Matplotlib中适合展示行总和为1的概率数据的绘图类型是什么
适合概率占比类数据的绘图类型
你要找的这种分不同颜色、每根柱子总和为1的柱状图是100%堆叠柱状图,也叫百分比堆叠柱状图,刚好适配你这类同一分组下各分类数值总和为1的概率、占比类数据展示需求。
匹配特点
- 刚好适配你给出的以
t为分组维度,p1-p4为不同类别概率,且同一行概率和为1的数据结构 - 既能直观对比同一
t值下四个类别的概率大小,也能清晰观察单个类别的概率随t变化的趋势
对应实现参考
你的示例数据如下:
t p1 p2 p3 p4 1 0 0 0 1 2 0.1 0 0 0.9 3 0.2 0 0 0.8 4 0.2 0.3 0 0.5
常用工具的实现方式如下:
- Python 生态:可以直接用pandas内置的绘图接口实现,代码示例:
import pandas as pd # 读入数据,你也可以手动构造DataFrame df = pd.read_csv("数据文件路径") # 因为数据已经满足每行p1-p4和为1,直接绘制堆叠柱状图就是100%堆叠效果 df.set_index("t").plot(kind="bar", stacked=True) - R 生态:使用ggplot2绘图时指定
position = "fill"即可,代码示例:library(ggplot2) library(tidyr) # 先将宽表转为长表,适配ggplot2的数据要求 df_long <- pivot_longer(df, cols = p1:p4, names_to = "类别", values_to = "概率") ggplot(df_long, aes(x = factor(t), y = 概率, fill = 类别)) + geom_bar(stat = "identity", position = "fill")
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

