这个gnuplot代码的正确Ruby gnuplot (rgplot)语法是什么?

3
这是来自Hannon实验室的shell脚本中的gnuplot命令,我想使用rgplot gem将绘图部分转移到Ruby中,但我在获取正确语法方面失败了。
set boxwidth 0.75 absolute
set size 1,1
set style fill solid 1.00 border -1
set xlabel \"read position\"
set title \"Nucleotides distribution $TITLE\" 
set ylabel \"% of total (per read position)\" 
set key outside right top vertical Left reverse enhanced autotitles columnhead nobox
set key invert samplen 4 spacing 1 width 0 height 0 
set style histogram rowstacked 
set style data histograms 
set noytics
set xtics 1
set yrange [ 0.00000 : 100.000 ] noreverse nowriteback

plot '$FILENAME' using (100.*column(13)/column(18)):xtic(1) title \"A\" lt rgb \"#5050ff\", \
       '' using (100.*column(14)/column(18)) title \"C\" lt rgb \"#e00000\", \
       '' using (100.*column(15)/column(18)) title \"G\" lt rgb \"#00c000\", \
       '' using (100.*column(16)/column(18)) title \"T\" lt rgb \"#e6e600\", \
       '' using (100.*column(17)/column(18)) title \"N\" lt rgb \"pink\"
"

到目前为止,我有以下内容:

Gnuplot.open do |gp|
  Gnuplot::Plot.new(gp) do |plot|
    plot.terminal options[:terminal]
    plot.title    options[:title]
    plot.xlabel   options[:xlabel]
    plot.ylabel   options[:ylabel]
    plot.output   options[:data_out] if options[:data_out]
    plot.boxwidth "0.75 absolute"
    plot.size     "1,1"
    plot.yrange   "[0:100]"
    plot.noytics
    plot.xtics    1
    plot.key      "outside right top vertical Left reverse enhanced autotitles columnhead nobox"
    plot.key      "invert samplen 4 spacing 1 width 0 height 0"
    plot.style    "fill solid 1.00 border -1"
    plot.style    "histogram rowstacked"
    plot.style    "data histograms"

    plot.data << Gnuplot::DataSet.new([x, a]) do |ds|
      ds.title = "A"
    end
  end
end

但我需要帮助才能做到这一点...

1个回答

5

我终于搞定了:

Gnuplot.open do |gp|
  Gnuplot::Plot.new(gp) do |plot|
    plot.terminal options[:terminal]
    plot.title    options[:title]
    plot.xlabel   options[:xlabel]
    plot.ylabel   options[:ylabel]
    plot.output   options[:data_out] if options[:data_out]
    plot.ytics    "out"
    plot.xtics    "out"
    plot.yrange   "[0:100]"
    plot.xrange   "[0:#{max_len}]"
    plot.auto     "fix"
    plot.offsets  "1"
    plot.key      "outside right top vertical Left reverse enhanced autotitles columnhead nobox"
    plot.key      "invert samplen 4 spacing 1 width 0 height 0"
    plot.style    "fill solid 0.5 border"
    plot.style    "histogram rowstacked"
    plot.style    "data histograms"
    plot.boxwidth "0.75 absolute"

    plot.data << Gnuplot::DataSet.new(n) do |ds|
      ds.using = "1"
      ds.with  = "histogram lt rgb \"black\""
      ds.title = "N"
    end

    plot.data << Gnuplot::DataSet.new(g) do |ds|
      ds.using = "1"
      ds.with  = "histogram lt rgb \"yellow\""
      ds.title = "G"
    end

    plot.data << Gnuplot::DataSet.new(c) do |ds|
      ds.using = "1"
      ds.with  = "histogram lt rgb \"blue\""
      ds.title = "C"
    end

    plot.data << Gnuplot::DataSet.new(t) do |ds|
      ds.using = "1"
      ds.with  = "histogram lt rgb \"green\""
      ds.title = "T"
    end

    plot.data << Gnuplot::DataSet.new(a) do |ds|
      ds.using = "1"
      ds.with  = "histogram lt rgb \"red\""
      ds.title = "A"
    end
  end
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接