Modulo:Demografia: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
refactoring |
aggiungo generazione con tag graph |
||
Riga 1:
local mWikidata = require('Modulo:Wikidata/sandbox')
local mChart = require('Modulo:Chart')
local p = {}
Riga 83 ⟶ 84:
end
local function
local
local
if #raw_data == 0 then▼
years[i], populations[i] = d.year, d.population
raw_data = get_wikidata(args.from)▼
from_wikidata = true▼
-- if true then return mw.text.jsonEncode(raw_data, mw.text.JSON_PRETTY) end▼
end
if #raw_data == 0 then return '' end▼
graphwidth = tonumber(args.dimx) or default.dimx,
local popmax = max_pop(raw_data)▼
graphheight = tonumber(args.dimy) or 373,
▲ local is_thousand = false
ygrid = true,
if from_wikidata and popmax >= 900000 then▼
xtitle = 'anni',
▲ for i,data in ipairs(raw_data) do
ytitle = 'popolazione',
raw_data[i].population = raw_data[i].population / 1000▼
y = { populations
graph_type = 'rect',
end▼
seriesTitles = {'Popolazione'},
-- calcolo default per la popolazione▼
colors = {'#4682B4'}
local default = default_table(popmax, #raw_data)▼
}
-- generazione del grafico▼
local graph_json = mChart.chart_json(graph)
if args.raw then return graph_json end
return mw.getCurrentFrame():extensionTag('graph', graph_json)
end
local function draw_timeline(raw_data, args, default)
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 tostring(default.dimx), ' height:', args.
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(default.popmax), '\n')
Riga 140 ⟶ 145:
draw_graph = mw.getCurrentFrame():extensionTag('timeline', table.concat(graph))
end
return draw_graph
local titolo = "''Abitanti censiti''\n"▼
end
function p._demografia(args)
local graph
local raw_data = read_array(args)
local from_wikidata = false
▲ if #raw_data == 0 then
▲ raw_data = get_wikidata(args.from)
▲ from_wikidata = true
▲ -- if true then return mw.text.jsonEncode(raw_data, mw.text.JSON_PRETTY) end
▲ end
▲ if #raw_data == 0 then return '' end
▲ local popmax = max_pop(raw_data)
local is_thousand = false
▲ if from_wikidata and popmax >= 900000 then
popmax = popmax / 1000
for i,data in ipairs(raw_data) do
▲ raw_data[i].population = raw_data[i].population / 1000
is_thousand = true
end
end
▲ -- calcolo default per la popolazione
▲ local default = default_table(popmax, #raw_data)
▲ -- generazione del grafico
if is_thousand then
titolo = "''Abitanti censiti (migliaia)''
end
if args.titolo then
titolo = "''" .. args.titolo .. "''
end
if args.graph then
graph = draw_graph(raw_data, args, default)
else
graph = draw_timeline(raw_data, args, default)
end
return titolo ..
end
|