mirror of
https://github.com/red-data-tools/YouPlot.git
synced 2025-05-06 07:10:10 +08:00
refactoring...
This commit is contained in:
parent
ee74b32815
commit
3c51e0c902
@ -141,8 +141,9 @@ module Uplot
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Transpose different sized ruby arrays
|
||||||
# https://stackoverflow.com/q/26016632
|
# https://stackoverflow.com/q/26016632
|
||||||
def transpose2(arr) # Should be renamed
|
def transpose2(arr)
|
||||||
Array.new(arr.map(&:length).max) { |i| arr.map { |e| e[i] } }
|
Array.new(arr.map(&:length).max) { |i| arr.map { |e| e[i] } }
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -151,18 +152,35 @@ module Uplot
|
|||||||
data.delete([]) # Remove blank lines.
|
data.delete([]) # Remove blank lines.
|
||||||
data.delete_if { |i| i.all? nil } # Room for improvement.
|
data.delete_if { |i| i.all? nil } # Room for improvement.
|
||||||
p parsed_csv: data if @debug
|
p parsed_csv: data if @debug
|
||||||
headers = nil
|
headers = get_headers(data)
|
||||||
|
data = get_data(data)
|
||||||
|
[data, headers]
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_headers(data)
|
||||||
|
if @headers
|
||||||
|
if @transpose
|
||||||
|
data.map(&:first)
|
||||||
|
else
|
||||||
|
data[0]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_data(data)
|
||||||
if @transpose
|
if @transpose
|
||||||
if @headers
|
if @headers
|
||||||
headers = []
|
data.map { |row| row[1..-1] }
|
||||||
# each but destructive like map
|
else
|
||||||
data.each { |series| headers << series.shift }
|
data
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
headers = data.shift if @headers
|
if @headers
|
||||||
data = transpose2(data)
|
transpose2(data[1..-1])
|
||||||
|
else
|
||||||
|
tanrspose2(data)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
[data, headers]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def preprocess_count(data)
|
def preprocess_count(data)
|
||||||
|
Loading…
Reference in New Issue
Block a user