【问题标题】:Gnuplot: how to make a histogram with only some bars stacked, others not?Gnuplot:如何制作仅堆叠一些条形的直方图,而其他条则没有?
【发布时间】:2013-11-21 19:53:46
【问题描述】:

假设我想要将数据分成不同的条,但其中一个被细分,例如:

A1 : 4
B1 : 1 2

A2 : 3
B2 : 2 3

然后我想(仅)堆叠 B 条。对于图表上方的数据,应如下所示:

          y
o         y
o y     o y
o y     o x
o x     o x
A B     A B

我该怎么做?我可以更改输入文件的格式(或者甚至在必要时使用多个文件),但我真的很想得到带有条形簇的最终图,其中每个簇的一些条形是堆叠的,其他的则不是。

【问题讨论】:

    标签: gnuplot histogram stackedbarseries stacked-chart


    【解决方案1】:

    这是实现这一目标的一种可能性。为此,您需要将数据文件中的 A* 值组合在一起,然后是 两个 新行,然后是所有 B* 值:

    A1 4
    A2 3
    
    
    B1 1 2
    B2 2 3
    

    两个 新行分隔数据集允许您使用 index 语句访问它们。 (使用两个文件也可以)

    然后绘制第一个直方图。这隐含地使用01 等作为x 值,但给它们标签A1A2。对于B* 值,您使用newhistogram 创建一个新直方图,并将其第一个x 值设置为at0 加上一个boxwidth

    set style data histogram
    set style histogram rowstacked
    box_wd = 0.3
    set boxwidth box_wd
    set style fill solid
    unset key
    
    plot 'file.txt' using 2:xtic(1) index 0, \
         newhistogram at box_wd, \
         'file.txt' using 2:xtic(1) index 1,\
         '' using 3 index 1
    

    使用 4.6.4,您将获得:

    唯一的可能是,两个直方图的键被一个新行分隔。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多