如何在gnuplot条形图中设置条形基座的y坐标?

时间:2018-11-10 22:51:08

标签: gnuplot

有什么方法可以将gnuplot条形图中的条形基座的y坐标设置为matplotlib中的bottom选项?

例如,假设我有以下数据:

0.5 0.2 0.3 0.1 0.2 0.1
0.6 0.1 0.2 0.1 0.2 0.0
0.4 0.2 0.1 0.1 0.5 0.3

在matplotlib中,我可以执行以下过程:

import matplotlib.pyplot as plt
import numpy as np

a = np.loadtxt('sample.dat', usecols=[0], dtype=float).tolist()
a1 = np.loadtxt('sample.dat', usecols=[1], dtype=float).tolist()
b = np.loadtxt('sample.dat', usecols=[2], dtype=float).tolist()
b1 = np.loadtxt('sample.dat', usecols=[3], dtype=float).tolist()
c = np.loadtxt('sample.dat', usecols=[4], dtype=float).tolist()
c1 = np.loadtxt('sample.dat', usecols=[5], dtype=float).tolist()

x_pos = np.arange(len(a))
plt.bar(x_pos,a, align='center', color='green');
plt.bar(x_pos,b, align='center', bottom=a, color='red');
plt.bar(x_pos,c, align='center', bottom=np.add(a, b).tolist(), color='orange');
plt.bar(x_pos,a1, align='center', bottom=None, color='black');
plt.bar(x_pos,b1, align='center', bottom=a, color='blue');
plt.bar(x_pos,c1, align='center', bottom=np.add(a, b).tolist(), color='gray');
plt.xticks(np.arange(0, len(a)));

获取下图:

Bar chart

1 个答案:

答案 0 :(得分:1)

有一种gnuplot绘图样式,可让您指定每个框的顶部和底部(以及左侧和右侧)。是

plot FOO using (x):(y):(xlow):(xhigh):(ylow):(yhigh) with boxxy

不过,生成堆叠的直方图图(如您所示的图)要好得多。

set style data histogram
set style histogram columnstacked
set style fill solid border lc "black"
plot for [col=4:7] FOO using col title sprintf("Col %d",col)

enter image description here