mirror of
https://github.com/red-data-tools/YouPlot.git
synced 2025-05-05 22:31:11 +08:00
Fix color command
This commit is contained in:
parent
cc076d5cfe
commit
edd081562e
@ -152,17 +152,23 @@ module YouPlot
|
||||
end
|
||||
|
||||
def colors(color_names = false)
|
||||
# FIXME
|
||||
s = String.new
|
||||
UnicodePlot::StyledPrinter::TEXT_COLORS.each do |k, v|
|
||||
print v
|
||||
print k
|
||||
s << v
|
||||
s << k.to_s
|
||||
unless color_names
|
||||
print "\t"
|
||||
print ' ●'
|
||||
s << "\t"
|
||||
s << ' ●'
|
||||
end
|
||||
print "\033[0m"
|
||||
print "\t"
|
||||
s << "\033[0m"
|
||||
s << "\t"
|
||||
end
|
||||
puts
|
||||
s << "\n"
|
||||
def s.render(obj)
|
||||
obj.print(self)
|
||||
end
|
||||
s
|
||||
end
|
||||
|
||||
def check_series_size(data, fmt)
|
||||
|
@ -28,14 +28,14 @@ module YouPlot
|
||||
@options ||= parser.options
|
||||
@params ||= parser.params
|
||||
|
||||
if command == :colors
|
||||
@backend.colors(parser.color_names)
|
||||
exit
|
||||
end
|
||||
|
||||
# Sometimes the input file does not end with a newline code.
|
||||
while (input = Kernel.gets(nil))
|
||||
main(input)
|
||||
if %i[colors color colours colour].include? @command
|
||||
plot = create_plot
|
||||
output_plot(plot)
|
||||
else
|
||||
# Sometimes the input file does not end with a newline code.
|
||||
while (input = Kernel.gets(nil))
|
||||
main(input)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -75,6 +75,8 @@ module YouPlot
|
||||
@backend.density(data, params, options[:fmt])
|
||||
when :box, :boxplot
|
||||
@backend.boxplot(data, params)
|
||||
when :colors, :color, :colours, :colour
|
||||
@backend.colors(options[:color_names])
|
||||
else
|
||||
raise "unrecognized plot_type: #{command}"
|
||||
end
|
||||
|
@ -123,7 +123,7 @@ module YouPlot
|
||||
scatter s draw a scatter plot
|
||||
density d draw a density plot
|
||||
boxplot box draw a horizontal boxplot
|
||||
colors show the list of available colors
|
||||
colors color show the list of available colors
|
||||
|
||||
count c draw a baplot based on the number of
|
||||
occurrences (slow)
|
||||
@ -252,7 +252,7 @@ module YouPlot
|
||||
params.xlim = v.take(2)
|
||||
end
|
||||
|
||||
when :colors
|
||||
when :colors, :color, :colours, :colour
|
||||
parser.on_head('-n', '--names', 'show color names only', TrueClass) do |v|
|
||||
@options[:color_names] = v
|
||||
end
|
||||
|
@ -106,7 +106,7 @@ class YouPlotCommandTest < Test::Unit::TestCase
|
||||
|
||||
test :plot_output_stdout do
|
||||
YouPlot::Command.new(['bar', '-o', '-H', '-d,', '-t', 'IRIS-BARPLOT']).run
|
||||
assert_equal "", @stderr_file.read
|
||||
assert_equal '', @stderr_file.read
|
||||
end
|
||||
|
||||
test :data_output_stdout do
|
||||
@ -114,4 +114,18 @@ class YouPlotCommandTest < Test::Unit::TestCase
|
||||
assert_equal fixture('iris-barplot.txt'), @stderr_file.read
|
||||
assert_equal File.read(File.expand_path('../fixtures/iris.csv', __dir__)), @stdout_file.read
|
||||
end
|
||||
|
||||
%i[colors color colours colour].each do |cmd_name|
|
||||
test cmd_name do
|
||||
YouPlot::Command.new([cmd_name.to_s]).run
|
||||
assert_equal fixture('colors.txt'), @stderr_file.read
|
||||
assert_equal '', @stdout_file.read
|
||||
end
|
||||
end
|
||||
|
||||
test :colors_output_stdout do
|
||||
YouPlot::Command.new(['colors', '-o']).run
|
||||
assert_equal '', @stderr_file.read
|
||||
assert_equal fixture('colors.txt'), @stdout_file.read
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user