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

使用Gnuplot绘制成对堆叠柱状图的技术实现问询

Gnuplot实现成对堆叠柱状图方案

我来帮你搞定这个成对堆叠柱状图的需求!下面是完整的实现脚本和细节说明,完全匹配你要的「每个x刻度位置展示一对垂直堆叠柱(左侧#类堆叠、右侧%类堆叠)」的效果,而且考虑到两类数据量级差距大的问题,我还加了双y轴优化,让两类数据都能清晰展示。

第一步:整理数据集

首先把你给的数据整理成结构化的文本文件(比如命名为data.txt),每行对应一个x轴分组,格式如下:

# 表头:Min# Max# Avg# Min% Max% Avg%
6       12      6.67    13      100     35.25
0       6       3       0       90      43.25
235     1243    553     66.67   100     83.43

第二步:Gnuplot脚本实现

创建一个脚本文件(比如stacked_pair_plot.gp),内容如下,每部分都加了注释方便你理解:

# 设置输出终端和图片尺寸(可以根据需求调整,比如换成png/pdf)
set terminal pngcairo size 1000,600 enhanced font 'Arial,10'
set output 'stacked_pair_histogram.png'

# 设置图表标题和坐标轴标签
set title "每组#类与%类数值堆叠对比" font 'Arial,12'
set xlabel "分组" font 'Arial,10'
set ylabel "#类数值(Min/Max/Avg)" font 'Arial,10'
set y2label "%类数值(Min/Max/Avg)" font 'Arial,10'

# 启用双y轴,左侧y轴对应#类,右侧y轴对应%类
set ytics nomirror  # 左侧y轴不镜像显示到右侧
set y2tics          # 显示右侧y轴刻度

# 设置柱状图样式:聚类分组(每组两个堆叠柱)+ 填充样式
set style histogram clustered gap 2  # gap控制组与组之间的间距
set style data histogram
set style fill solid 0.7 border -1  # 填充透明度+边框
set boxwidth 0.35                   # 单个堆叠柱的宽度

# 设置x轴刻度标签,对应三个数据分组
set xtics ("Group 1" 1, "Group 2" 2, "Group 3" 3)

# 绘制堆叠柱状图:
# 第一部分:#类堆叠(Min#/Max#/Avg#),使用左侧y轴
# 第二部分:%类堆叠(Min%/Max%/Avg%),使用右侧y轴,通过offset移到#类右侧组成一对
plot 'data.txt' using 1:xtic(0) title 'Min #' axis x1y1, \
     '' using 2 title 'Max #' axis x1y1, \
     '' using 3 title 'Avg #' axis x1y1, \
     '' using 4:offset(0.5,0) title 'Min %' axis x1y2, \
     '' using 5:offset(0.5,0) title 'Max %' axis x1y2, \
     '' using 6:offset(0.5,0) title 'Avg %' axis x1y2

关键细节解释

  • 双y轴设置:因为#类数值(比如第三组Max#达到1243)和%类数值(最高100)量级差距极大,单y轴会导致%类柱子几乎不可见,所以用双y轴分别适配两类数据。
  • 聚类与偏移:set style histogram clustered让每个x刻度位置可以容纳多个柱状组,通过offset(0.5,0)把%类堆叠柱整体右移,和左侧的#类堆叠柱组成一对。
  • 堆叠逻辑:Gnuplot的histogram样式默认会把同组的多个plot序列堆叠在一起,所以依次绘制Min#、Max#、Avg#就会自动形成堆叠效果,%类同理。

运行方式

把data.txt和stacked_pair_plot.gp放在同一目录下,打开终端执行:

gnuplot stacked_pair_plot.gp

就能生成名为stacked_pair_histogram.png的柱状图了。

你可以根据自己的需求调整终端类型(比如换成pdfcairo生成PDF)、颜色(可以在set style fill后加rgb "#xxxxxx"指定颜色)、字体、尺寸等参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:22:00