У меня этот файл как data.dat
:Гистограмма с числовой осью х в gnuplot?
Xstep Y1 Y2 Y3 Y4
332 1.22 0.00 0.00 1.43
336 5.95 12.03 6.11 10.41
340 81.05 81.82 81.92 81.05
394 11.76 6.16 10.46 5.87
398 0.00 0.00 1.51 1.25
1036 0.03 0.00 0.00 0.00
Я Plot эти данные как гистограмму с помощью этого сценария, hist-v1.gplot
(с использованием set style data histogram
):
set xlabel "X values"
set ylabel "Occurence"
set style data histogram
set style histogram cluster gap 1
set style fill solid border -1
set term png
set output 'hist-v1.png'
set boxwidth 0.9
# attempt to set xtics so they are positioned numerically on x axis:
set xtics ("332" 332, "336" 336, "340" 340, "394" 394, "398" 398, "1036" 1036)
# ti col reads the first entry of the column, uses it as title name
plot 'data.dat' using 2:xtic(1) ti col, '' u 3 ti col, '' u 4 ti col, '' u 5 ti col
И по телефону:
gnuplot hist-v1.gplot && eog hist-v1.png
это изображение создается: image hist-v1.png http://img202.imageshack.us/img202/3974/histv1.png
Однако вы можете заметить, что ось X не масштабируется численно - она понимает значения X как категории (т. это ось категории).
я могу получить более числовой оси X со следующим сценарием, hist-v2.gplot
(с использованием with boxes
):
set xlabel "X values"
set ylabel "Occurence"
# in this case, histogram commands have no effect
set style data histogram
set style histogram cluster gap 1
set style fill solid border -1
set term png
set output 'hist-v2.png'
set boxwidth 0.9
set xr [330:400]
# here, setting xtics makes them positioned numerically on x axis:
set xtics ("332" 332, "336" 336, "340" 340, "394" 394, "398" 398, "1036" 1036)
# 1:2 will ONLY work with proper xr; since we have x>300; xr[0:10] generates "points y value undefined"!
plot 'data.dat' using 1:2 ti col smooth frequency with boxes, '' u 1:3 ti col smooth frequency with boxes
И по телефону:
gnuplot hist-v2.gplot && eog hist-v2.png
это изображение генерируется: image hist-v2.png http://img266.imageshack.us/img266/6717/histv2.png
К сожалению, здесь накладываются «перекрытия» баров, поэтому трудно прочитать график.
Есть ли способ сохранить числовую ось X оси, как в hist-v2.png
, но держите «бары» бок о бок, как в hist-v1.png
? Эта нить, «Re: Histogram with x axis date error» говорит, что вы не можете:
Но это будет трудно вытащить й-координату даты из файла данных, ...
, но потом, это относится к другая проблема ...
Спасибо,
Приветствия!
Большое спасибо за размещение решение, @hsxz - ура! – sdaau