Одна гистограмма, несколько осей Y с разными метками оси X - PullRequest
0 голосов
/ 15 марта 2020

Мой файл test.dat выглядит как

# Experiment No.  Total U_Na-Z (millimoles/g of zeolite) Total Na_Na-Z in melt (mmoles/g zeolite)         Total U_Li-Z (millimoles/g of zeolite) Total Na_Li-Z in melt (mmoles/g zeolite)
Experiment No.  Total U loading (mmoles/g zeolite)   Total Na in melt (mmoles/g of zeolite)           Total U loading (mmoles/g zeolite)   Total Na in melt (mmoles/g of zeolite) 
1                0.074798319                          4.60                                              0.061795848                          1.38
2                0.148512605                          3.73                                              0.122910867                          1.72
3                0.223310924                          4.02                                              0.216806723                          1.46
4                0.287268908                          5.26                                              0.275399753                          1.60               

Я хотел бы построить гистограмму с двумя осями y (Col 2 как y и Col 3 как y2) против Col 1 (ось x), и на той же гистограмме Col 4 (как y) и Col 5 (как y2) должны быть нанесены на график для Col 1, конечно, с разными цветами. Сценарий приведен ниже (соответственно изменен скрипт новой гистограммы из gnuplot)

set terminal postscript eps enhanced colour font 'Times-Roman,12' size 5in,4in  
set output "Histogram1.eps"
#------------------------------------------------------------------------------
set style line 1 lt 2 lw 1 lc rgb "#000FF"
set style line 2 lt 3 lw 1 lc rgb "#228B22"
set style line 3 lt 4 lw 1 lc rgb "#FF4500"
set style line 4 lt 5 lw 1 lc rgb "#8B0000"
set style line 5 lt 6 lw 1 lc rgb "dark-magenta"
#------------------------------------------------------------------------------
set xtics out scale 1.5 
set ytics out scale 1.5
set y2tics out scale 1.5 
set ytics nomirror
set yrange [0:0.50]
set y2range [0:6] 
set key off
set tics font ", 14"
set xlabel "Experiment No." font ",16"
set ylabel "U loading in zeolite (mmoles/g zeolite)" font ",16"
set y2label "Na in melt (mmoles/g zeolite)" font ",16"
set key autotitle columnheader
set key inside left horizontal
set style fill solid 1.00 noborder
set style histogram clustered gap 1 title textcolor lt -1
# ----------------------------------------
set rmargin screen 0.9
set lmargin screen 0.1
set bmargin screen 0.1
# ----------------------------------------

Теперь команда заговора была задана как

plot \
newhistogram "Sodium Zeolite", \
'test.dat' using 2:xtic(1) ls 1 ti col axis x1y1, '' 3:xticlabels(1) ls 2 ti col axis x1y2, \
newhistogram "Lithium Zeolite", \
'' using 4:xtic(1) ls 3 ti col axis x1y1, '' 5:xticlabels(1) ls 4 ti col axis x1y2 

По оси x для первых четырех данных " Цеолит натрия »и четвертое гнездо« Цеолит лития ». Но это не похоже на работу. Любые предложения будут полезны.

Спасибо,

1 Ответ

2 голосов
/ 15 марта 2020

Несколько незначительных проблем:

  • Вы должны указать программе использовать стиль построения гистограммы. Лучше всего добавить строку перед командой plot:

    установить гистограмму данных стиля

  • ключевое слово axes, а не axis.

  • ключевое слово using должно присутствовать в каждом предложении графика

  • необязательно давать команду xticlabels(1) более одного раза за график ( хотя это тоже не должно повредить, но этикетки будут напечатаны дважды в одном и том же месте).

Это дает измененную команду печати:

set style data histogram
plot \
  newhistogram "Sodium Zeolite", \
  'test.dat' using 2:xtic(1) ls 1 ti col axes x1y1, \
  '' using 3 ls 2 ti col axes x1y2, \
  newhistogram "Lithium Zeolite", \
  '' using 4:xtic(1) ls 3 ti col axes x1y1, \
  '' using 5 ls 4 ti col axes x1y2

с выводом как показано enter image description here

...