Как установить координаты у оснований баров в гистограммах gnuplot? - PullRequest
0 голосов
/ 11 ноября 2018

Есть ли способ установить координату (ы) y оснований баров в гистограммах gnuplot как параметр bottom в matplotlib?

Например, предположим, у меня есть следующие данные:

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)));

Получение следующего графика:

Гистограмма

1 Ответ

0 голосов
/ 11 ноября 2018

Существует стиль графика 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

...