Show barplot with line num as labels if 1 series

This commit is contained in:
kojix2 2020-11-13 11:22:36 +09:00
parent 471f0a907e
commit 4d761dd0e7

View File

@ -10,13 +10,21 @@ module Uplot
def barplot(data, params, count: false) def barplot(data, params, count: false)
headers = data.headers headers = data.headers
series = data.series series = data.series
# `uplot count`
if count if count
series = Preprocessing.count_values(series[0]) series = Preprocessing.count_values(series[0])
params.title = headers[0] if headers params.title = headers[0] if headers
end end
params.title ||= headers[1] if headers if series.size == 1
labels = series[0].map(&:to_s) # If there is only one series, use the line number for label.
values = series[1].map(&:to_f) params.title ||= headers[0] if headers
labels = Array.new(series[0].size){|i| (i+1).to_s}
values = series[0].map(&:to_f)
else
params.title ||= headers[1] if headers
labels = series[0]
values = series[1].map(&:to_f)
end
UnicodePlot.barplot(labels, values, **params.to_hc) UnicodePlot.barplot(labels, values, **params.to_hc)
end end