Modulo:Demografia: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
r |
refactoring e raffinamento calcolo default |
||
Riga 8:
table.insert(t, s)
end
local function max_array(array)
end▼
return max
end
Riga 50 ⟶ 58:
end
local function
local
if #years == 0 then▼
years,populations = get_wikidata(args.from)▼
▲ end
if #years == 0 then return '' end▼
local graph = {}▼
▲ local popmax = 0
▲ for _,p in ipairs(populations) do
▲ if p > popmax then popmax = p end
▲ end
local log_p = math.ceil(math.log10(popmax))
if log_p == 0 then log_p = 1 end
local first_digit = math.floor(popmax / 10 ^ (log_p - 1))
if first_digit == 9 then
else
end
if log_p < 2 then log_p = 2 end
if first_digit <=5 then
local default_passo1 = 10 ^ (log_p-1)▼
default.passo2 = 10 ^ (log_p-2)
else
default.passo2 = 2 * 10 ^ (log_p-2)
end
return default
end
function p._demografia(args)
local years,populations = read_array(args)
local from_wikidata = false
▲ if #years == 0 then
▲ years,populations = get_wikidata(args.from)
from_wikidata = true
end
▲ if #years == 0 then return '' end
local popmax = max_array(populations)
local is_thousand = false
if from_wikidata and popmax >= 900000 then
popmax = popmax / 1000
for index,population in ipairs(populations) do
populations[index] = population / 1000
is_thousand = true
end
end
-- calcolo default per la popolazione
local default = default_table(popmax)
-- generazione del grafico
▲ local graph = {}
dump(graph, 'Colors=\n id:lightgrey value:gray(0.9)\n id:darkgrey value:gray(0.7)\n id:sfondo value:rgb(1,1,1)\n id:barra value:rgb(0.6,0.7,0.8)\n\n')
dump(graph, 'ImageSize = width:', args.dimx or '
dump(graph, 'PlotArea = left:50 bottom:50 top:30 right:30\nDateFormat = x.y\n')
dump(graph, 'Period = from:0 till:', args.popmax or tostring(
dump(graph, 'TimeAxis = orientation:vertical\nAlignBars = justify\n')
dump(graph, 'ScaleMajor = gridcolor:darkgrey increment:', args.passo1 or tostring(
dump(graph, 'ScaleMinor = gridcolor:lightgrey increment:', args.passo2 or tostring(
dump(graph, 'BackgroundColors = canvas:sfondo\n')
dump(graph, 'BarData=\n')
Riga 109 ⟶ 136:
end
local titolo = "''Abitanti censiti''\n"
if is_thousand then
titolo = "''Abitanti censiti (migliaia)''\n"
end
if args.titolo then
titolo = "''" .. args.titolo .. "''\n"
|