mirror of
https://github.com/red-data-tools/YouPlot.git
synced 2025-05-06 15:11:12 +08:00
Use symbols as plot_type
This commit is contained in:
parent
ff1176797f
commit
ee3608a106
@ -4,8 +4,6 @@ require 'unicode_plot'
|
|||||||
|
|
||||||
module Uplot
|
module Uplot
|
||||||
class Command
|
class Command
|
||||||
attr_accessor :params
|
|
||||||
|
|
||||||
Params = Struct.new(
|
Params = Struct.new(
|
||||||
:title,
|
:title,
|
||||||
:width,
|
:width,
|
||||||
@ -31,10 +29,12 @@ module Uplot
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
attr_accessor :params, :plot_type
|
||||||
|
|
||||||
def initialize(argv)
|
def initialize(argv)
|
||||||
@params = Params.new
|
@params = Params.new
|
||||||
|
|
||||||
@ptype = nil
|
@plot_type = nil
|
||||||
@headers = nil
|
@headers = nil
|
||||||
@delimiter = "\t"
|
@delimiter = "\t"
|
||||||
@transpose = false
|
@transpose = false
|
||||||
@ -71,33 +71,33 @@ module Uplot
|
|||||||
def parse_options(argv)
|
def parse_options(argv)
|
||||||
main_parser = create_parser
|
main_parser = create_parser
|
||||||
parsers = Hash.new { |h, k| h[k] = create_parser }
|
parsers = Hash.new { |h, k| h[k] = create_parser }
|
||||||
parsers['barplot'] = parsers['bar']
|
parsers[:barplot] = parsers[:bar]
|
||||||
.on('--symbol VAL', String) { |v| params.symbol = v }
|
.on('--symbol VAL', String) { |v| params.symbol = v }
|
||||||
.on('--xscale VAL', String) { |v| params.xscale = v }
|
.on('--xscale VAL', String) { |v| params.xscale = v }
|
||||||
.on('--count', TrueClass) { |v| @count = v }
|
.on('--count', TrueClass) { |v| @count = v }
|
||||||
parsers['count'] = parsers['c'] # barplot -c
|
parsers[:count] = parsers[:c] # barplot -c
|
||||||
.on('--symbol VAL', String) { |v| params.symbol = v }
|
.on('--symbol VAL', String) { |v| params.symbol = v }
|
||||||
parsers['histogram'] = parsers['hist']
|
parsers[:histogram] = parsers[:hist]
|
||||||
.on('-n', '--nbins VAL', Numeric) { |v| params.nbins = v }
|
.on('-n', '--nbins VAL', Numeric) { |v| params.nbins = v }
|
||||||
.on('--closed VAL', String) { |v| params.closed = v }
|
.on('--closed VAL', String) { |v| params.closed = v }
|
||||||
.on('--symbol VAL', String) { |v| params.symbol = v }
|
.on('--symbol VAL', String) { |v| params.symbol = v }
|
||||||
parsers['lineplot'] = parsers['line']
|
parsers[:lineplot] = parsers[:line]
|
||||||
.on('--canvas VAL', String) { |v| params.canvas = v }
|
.on('--canvas VAL', String) { |v| params.canvas = v }
|
||||||
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
||||||
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
||||||
parsers['lineplots'] = parsers['lines']
|
parsers[:lineplots] = parsers[:lines]
|
||||||
.on('--canvas VAL', String) { |v| params.canvas = v }
|
.on('--canvas VAL', String) { |v| params.canvas = v }
|
||||||
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
||||||
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
||||||
parsers['scatter'] = parsers['s']
|
parsers[:scatter] = parsers[:s]
|
||||||
.on('--canvas VAL', String) { |v| params.canvas = v }
|
.on('--canvas VAL', String) { |v| params.canvas = v }
|
||||||
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
||||||
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
||||||
parsers['density'] = parsers['d']
|
parsers[:density] = parsers[:d]
|
||||||
.on('--grid', TrueClass) { |v| params.grid = v }
|
.on('--grid', TrueClass) { |v| params.grid = v }
|
||||||
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
||||||
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
.on('--ylim VAL', String) { |v| params.ylim = get_lim(v) }
|
||||||
parsers['boxplot'] = parsers['box']
|
parsers[:boxplot] = parsers[:box]
|
||||||
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
.on('--xlim VAL', String) { |v| params.xlim = get_lim(v) }
|
||||||
parsers.default = nil
|
parsers.default = nil
|
||||||
|
|
||||||
@ -119,17 +119,17 @@ module Uplot
|
|||||||
exit 1
|
exit 1
|
||||||
end
|
end
|
||||||
|
|
||||||
@ptype = argv.shift
|
@plot_type = argv.shift&.to_sym
|
||||||
|
|
||||||
unless parsers.has_key?(@ptype)
|
unless parsers.has_key?(plot_type)
|
||||||
if @ptype.nil?
|
if plot_type.nil?
|
||||||
warn main_parser.help
|
warn main_parser.help
|
||||||
else
|
else
|
||||||
warn "uplot: unrecognized command '#{@ptype}'"
|
warn "uplot: unrecognized command '#{plot_type}'"
|
||||||
end
|
end
|
||||||
exit 1
|
exit 1
|
||||||
end
|
end
|
||||||
parser = parsers[@ptype]
|
parser = parsers[plot_type]
|
||||||
|
|
||||||
begin
|
begin
|
||||||
parser.parse!(argv) unless argv.empty?
|
parser.parse!(argv) unless argv.empty?
|
||||||
@ -145,24 +145,26 @@ module Uplot
|
|||||||
input.freeze
|
input.freeze
|
||||||
data, headers = preprocess(input)
|
data, headers = preprocess(input)
|
||||||
pp input: input, data: data, headers: headers if @debug
|
pp input: input, data: data, headers: headers if @debug
|
||||||
case @ptype
|
case plot_type
|
||||||
when 'bar', 'barplot'
|
when :bar, :barplot
|
||||||
barplot(data, headers)
|
barplot(data, headers)
|
||||||
when 'count', 'c'
|
when :count, :c
|
||||||
@count = true
|
@count = true
|
||||||
barplot(data, headers)
|
barplot(data, headers)
|
||||||
when 'hist', 'histogram'
|
when :hist, :histogram
|
||||||
histogram(data, headers)
|
histogram(data, headers)
|
||||||
when 'line', 'lineplot'
|
when :line, :lineplot
|
||||||
line(data, headers)
|
line(data, headers)
|
||||||
when 'lines', 'lineplots'
|
when :lines, :lineplots
|
||||||
lines(data, headers)
|
lines(data, headers)
|
||||||
when 'scatter', 'scatterplot'
|
when :scatter, :scatterplot
|
||||||
scatter(data, headers)
|
scatter(data, headers)
|
||||||
when 'density'
|
when :density
|
||||||
density(data, headers)
|
density(data, headers)
|
||||||
when 'box', 'boxplot'
|
when :box, :boxplot
|
||||||
boxplot(data, headers)
|
boxplot(data, headers)
|
||||||
|
else
|
||||||
|
raise "unrecognized plot_type: #{plot_type}"
|
||||||
end.render($stderr)
|
end.render($stderr)
|
||||||
|
|
||||||
print input if @output
|
print input if @output
|
||||||
|
Loading…
Reference in New Issue
Block a user