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

如何在Gnuplot中为直方图每个条形设置对应名称的图例?

解决Gnuplot直方图图例显示异常问题

问题回顾

你有如下格式的数据集(CSV格式):

"name01","9.3","1"
"name02","8.68","2"
"name03","8.57142857143","3"
"name04","8.45454545455","4"
"name05","8.34518174511","5"
"name06","8.22222222222","6"
"name07","8.16666666667","7"
"name08","8.14053254438","8"
"name09","8.11111111111","9"
"name10","7.93939393939","10"
"name11","7.92307692308","11"
"name12","7.89285714286","12"
"name13","7.81818181818","13"
"name14","7.8125","14"
"name15","7.77777777778","15"
"name16","7.70588235294","16"
"name17","7.66101694915","17"
"name18","7.65714285714","18"
"name19","7.45054945055","19"
"name20","7.425","20"
"name21","7.30769230769","21"
"name22","7.20689655172","22"

使用你提供的Gnuplot代码时遇到两个问题:

  • 仅显示一个图例,内容为9.3而非name01
  • 其余所有条目的图例都未显示

问题原因

你的代码默认把整个第二列作为单个直方图系列,所以只会生成一个图例;同时key(1)的用法在这里没有正确关联到第一列的名称,导致图例内容错误。要让每个条形对应独立图例,需要把每个条目作为单独的系列来绘制。

修正后的Gnuplot代码

set terminal pngcairo enhanced size 1600,600
set output 'myhistogram.png'
set title "My Histogram" font "Arial, 14"
set auto x
set yrange [0:*]
# 关闭默认的histogram样式,改用boxes手动绘制每个条形
unset style data
set key invert reverse Left outside
set ytics 1
unset xtics
set style fill solid border -1
set palette color model HSV
set palette defined ( 0 0 1 0, 1 0 1 1, 6 0.8333 1 1, 7 0.8333 0 1)
unset colorbox
set boxwidth 0.8
set datafile separator ","

# 统计数据获取最大值,设置y轴范围
stats "password_length_area.csv" using 2 nooutput
set yrange [0:STATS_max * 1.2]

# 使用for循环遍历每一行,将每个条目作为单独系列绘制
# 使用word函数提取第一列的名称作为图例标题
plot for [i=0:21] "password_length_area.csv" using (i):2:3:1 with boxes lc palette title word(stringcolumn(1),1)

关键修改说明

  • 取消默认histogram样式:unset style data,因为默认histogram会把同一列合并为一个系列,无法生成多个图例。
  • 循环绘制每个条形:for [i=0:21]遍历22个条目(索引从0到21),用(i)作为x轴位置,确保每个条形依次排列。
  • 正确设置图例标题:title word(stringcolumn(1),1)提取第一列的名称(去掉引号)作为每个条形的图例标题。
  • 保留颜色映射:lc palette依然使用你定义的HSV调色板,确保每个条形颜色不同。

这样修改后,每个条形都会对应name01到name22的独立图例,且图例内容正确显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:31:09