mirror of
https://github.com/red-data-tools/YouPlot.git
synced 2025-06-24 18:11:12 +08:00
Try to improve transpose
This commit is contained in:
parent
5557c4c1d0
commit
9d6337df1c
@ -93,16 +93,25 @@ module Uplot
|
|||||||
end
|
end
|
||||||
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)
|
def preprocess(input)
|
||||||
data = CSV.parse(input, col_sep: @delimiter)
|
data = CSV.parse(input, col_sep: @delimiter)
|
||||||
|
headers = nil
|
||||||
|
if @transpose
|
||||||
if @headers
|
if @headers
|
||||||
headers = data.shift
|
headers = []
|
||||||
data = data.transpose unless @transpose
|
data.each { |series| headers << series.shift } # each but destructive like map
|
||||||
[data, headers]
|
|
||||||
else
|
|
||||||
data = data.transpose unless @transpose
|
|
||||||
[data, nil]
|
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
headers = data.shift if @headers
|
||||||
|
data = transpose2(data)
|
||||||
|
end
|
||||||
|
[data, headers]
|
||||||
end
|
end
|
||||||
|
|
||||||
def barplot(data, headers)
|
def barplot(data, headers)
|
||||||
|
Loading…
Reference in New Issue
Block a user