You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Julia堆叠条形图中设置百分比Y轴?

在Julia中为堆叠条形图设置百分比Y轴

要实现带百分比Y轴的堆叠条形图,核心是先将原始数据转换为每组的占比(0-1范围),再自定义Y轴刻度标签为百分比格式,具体实现如下:

数据转换与绘图完整代码

using StatsPlots

# 原始数据
measles = [38556, 24472, 14556, 18060, 19549, 8122, 28541, 7880, 3283, 4135, 7953, 1884]
mumps = [20178, 23536, 34561, 37395, 36072, 32237, 18597, 9408, 6005, 6268, 8963, 13882]
chickenPox = [37140, 32169, 37533, 39103, 33244, 23269, 16737, 5411, 3435, 6052, 12825, 23332]

# 将数据转换为每组的百分比占比
data_matrix = hcat(measles, mumps, chickenPox)
group_totals = sum(data_matrix, dims=2)
percent_data = data_matrix ./ group_totals

# 绘制堆叠条形图并设置百分比Y轴
tick_labels = string.(collect('A':'L'))
groupedbar(percent_data,
        bar_position = :stack,
        bar_width=0.7,
        xticks=(1:12, tick_labels),
        label=["measles" "mumps" "chickenPox"],
        # 自定义Y轴刻度:数值范围0-1,对应标签为百分比
        yticks=(0:0.2:1, ["0%", "20%", "40%", "60%", "80%", "100%"]),
        ylabel="占比")

核心逻辑说明

  1. 数据转换:通过data_matrix ./ group_totals将每组数据转换为占比(0到1之间的数值),确保每组堆叠后的总高度对应100%
  2. 刻度自定义:利用yticks参数手动映射数值与百分比标签,也可以用动态生成方式简化标签编写,比如:
    yticks=(0:0.2:1, [string(Int(i*100)) * "%" for i in 0:0.2:1])
    

内容的提问来源于stack exchange,提问作者Quinten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:32:21