Try to improve transpose

This commit is contained in:
kojix2 2020-07-31 18:54:40 +09:00
parent 5557c4c1d0
commit 9d6337df1c

View File

@ -93,16 +93,25 @@ module Uplot
end
end
# Note: How can I transpose different sized ruby arrays?
# https://stackoverflow.com/questions/26016632/how-can-i-transpose-different-sized-ruby-arrays
def transpose2(arr) # Should be renamed
arr[0].zip(*arr[1..-1])
end
def preprocess(input)
data = CSV.parse(input, col_sep: @delimiter)
headers = nil
if @transpose
if @headers
headers = data.shift
data = data.transpose unless @transpose
[data, headers]
else
data = data.transpose unless @transpose
[data, nil]
headers = []
data.each { |series| headers << series.shift } # each but destructive like map
end
else
headers = data.shift if @headers
data = transpose2(data)
end
[data, headers]
end
def barplot(data, headers)