Correction de manquements dans le commit précédent
This commit is contained in:
parent
adba50d786
commit
94af43e4a1
|
@ -1,91 +0,0 @@
|
||||||
import calendar
|
|
||||||
import collections
|
|
||||||
from datetime import datetime
|
|
||||||
from fetch import wikipedia_pageviews, mediawiki_api
|
|
||||||
import logging
|
|
||||||
import matplotlib
|
|
||||||
from matplotlib import pyplot
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# Objet pour afficher le journal d’exécution
|
|
||||||
logger = logging.getLogger('pageviews')
|
|
||||||
logging.basicConfig(level=logging.INFO)
|
|
||||||
|
|
||||||
if len(sys.argv) < 4:
|
|
||||||
print("""Utilisation : {} [project] [output] [article]...
|
|
||||||
Représente sur un graphe les statistiques moyenne de vue de pages wiki.
|
|
||||||
|
|
||||||
Paramètres :
|
|
||||||
|
|
||||||
project Projet Wikipédia ciblé (par exemple fr.wikipedia.org).
|
|
||||||
output Nom du fichier de sortie où sera sauvé le graphe, ou '-' pour
|
|
||||||
afficher le résultat à l’écran.
|
|
||||||
article Nom(s) d’article(s) Wikipédia ciblé(s).
|
|
||||||
|
|
||||||
Au moins un article doit être donné. Le nombre de visites est lissé avec un
|
|
||||||
noyau gaussien d’écart-type 10 jours. Les redirections d’article sont suivies
|
|
||||||
et toute visite sur une page de redirection pointant vers l’article est
|
|
||||||
dénombrée comme une visite sur la page canonique.
|
|
||||||
""".format(sys.argv[0]), end='', file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
project = sys.argv[1]
|
|
||||||
output = sys.argv[2]
|
|
||||||
articles = sys.argv[3:]
|
|
||||||
|
|
||||||
site = mediawiki_api.instanciate(project)
|
|
||||||
output_to_file = output != '-'
|
|
||||||
|
|
||||||
if output_to_file:
|
|
||||||
matplotlib.use('pgf')
|
|
||||||
matplotlib.rcParams.update({
|
|
||||||
'pgf.texsystem': 'xelatex',
|
|
||||||
'font.family': 'serif',
|
|
||||||
'text.usetex': True,
|
|
||||||
'pgf.rcfonts': False,
|
|
||||||
})
|
|
||||||
|
|
||||||
fig = pyplot.figure(figsize=(4.7, 3.3))
|
|
||||||
ax = fig.add_subplot(111)
|
|
||||||
|
|
||||||
ax.set_xlabel('Jours de l’année')
|
|
||||||
ax.set_xticks([
|
|
||||||
datetime(1, month, 1).toordinal()
|
|
||||||
for month in range(1, 13)
|
|
||||||
])
|
|
||||||
|
|
||||||
ax.set_xticklabels(calendar.month_abbr[1:13])
|
|
||||||
|
|
||||||
for article in articles:
|
|
||||||
canonical = mediawiki_api.article_canonical(site, article)
|
|
||||||
|
|
||||||
if article != canonical:
|
|
||||||
logger.info(
|
|
||||||
'Suivi de la redirection de « {} » en « {} »'
|
|
||||||
.format(article, canonical)
|
|
||||||
)
|
|
||||||
|
|
||||||
del article
|
|
||||||
|
|
||||||
redirects = mediawiki_api.article_redirects(site, canonical)
|
|
||||||
mean_views = wikipedia_pageviews.mean(sum(
|
|
||||||
(wikipedia_pageviews.get(project, page)
|
|
||||||
for page in redirects + [canonical]),
|
|
||||||
start=collections.Counter()
|
|
||||||
))
|
|
||||||
|
|
||||||
ax.plot(
|
|
||||||
wikipedia_pageviews.smooth(mean_views, 10),
|
|
||||||
label=canonical
|
|
||||||
)
|
|
||||||
|
|
||||||
ax.set_ylabel('Vues par jour')
|
|
||||||
|
|
||||||
fig.legend(framealpha=1)
|
|
||||||
fig.autofmt_xdate()
|
|
||||||
fig.tight_layout()
|
|
||||||
|
|
||||||
if output_to_file:
|
|
||||||
pyplot.savefig(output)
|
|
||||||
else:
|
|
||||||
pyplot.show()
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"name": "wikimedica-disease-search",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "index.js",
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.7.2",
|
||||||
|
"@babel/preset-env": "^7.7.1",
|
||||||
|
"@babel/preset-react": "^7.7.0",
|
||||||
|
"parcel-bundler": "^1.12.4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"react": "^16.12.0",
|
||||||
|
"react-dom": "^16.12.0"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue