pageviews: Export vers PGF

This commit is contained in:
Mattéo Delabre 2019-11-25 23:22:04 -05:00
parent cd808ab6c1
commit 8b960eb911
Signed by: matteo
GPG Key ID: AE3FBD02DC583ABB
1 changed files with 23 additions and 7 deletions

View File

@ -2,6 +2,7 @@ import calendar
import collections import collections
from datetime import datetime from datetime import datetime
import logging import logging
import matplotlib
import numpy import numpy
from matplotlib import pyplot from matplotlib import pyplot
import requests import requests
@ -9,6 +10,15 @@ from scipy import stats
import sys import sys
import mwclient import mwclient
# Configuration de Matplotlib
matplotlib.use('pgf')
matplotlib.rcParams.update({
'pgf.texsystem': 'xelatex',
'font.family': 'serif',
'text.usetex': True,
'pgf.rcfonts': False,
})
# Chemin racine pour les API Wikimedia # Chemin racine pour les API Wikimedia
wikimedia_base_path = 'https://wikimedia.org/api/rest_v1' wikimedia_base_path = 'https://wikimedia.org/api/rest_v1'
@ -204,7 +214,8 @@ def create_year_plot():
:return: Figure et axes Matplotlib. :return: Figure et axes Matplotlib.
""" """
fig, ax = pyplot.subplots() fig = pyplot.figure(figsize=(4.7, 3.3))
ax = fig.add_subplot(111)
ax.set_xlabel('Jours de lannée') ax.set_xlabel('Jours de lannée')
ax.set_xticks([ ax.set_xticks([
@ -212,6 +223,9 @@ def create_year_plot():
for month in range(1, 13) for month in range(1, 13)
]) ])
import locale
locale.setlocale(locale.LC_ALL, 'fr_FR.utf8')
ax.set_xticklabels(calendar.month_abbr[1:13]) ax.set_xticklabels(calendar.month_abbr[1:13])
return fig, ax return fig, ax
@ -219,24 +233,26 @@ def create_year_plot():
if __name__ == '__main__': if __name__ == '__main__':
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
if len(sys.argv) < 3: if len(sys.argv) < 4:
print("""Utilisation: {} [project] [article]... print("""Utilisation: {} [project] [output] [article]...
Obtient les statistiques moyenne de vue de pages wiki. Obtient les statistiques moyenne de vue de pages wiki.
Paramètres: Paramètres:
project Projet Wikipédia ciblé (par exemple fr.wikipedia.org). project Projet Wikipédia ciblé (par exemple fr.wikipedia.org).
output Nom du fichier de sortie sera écrit le graphe.
article Nom(s) darticle(s) Wikipédia ciblé(s). article Nom(s) darticle(s) Wikipédia ciblé(s).
Au moins un article doit être donné. Le nombre de visites est lissé avec un Au moins un article doit être donné. Le nombre de visites est lissé avec un
noyau gaussien décart-type 10 jours. Les redirections darticle sont suivies noyau gaussien décart-type 10 jours. Les redirections darticle sont suivies
et toute visite sur une page de redirection pointant vers larticle est et toute visite sur une page de redirection pointant vers larticle est
dénombrée comme une visite sur la page canonique. dénombrée comme une visite sur la page canonique.
""".format(sys.argv[0]), file=sys.stderr) """.format(sys.argv[0]), end='', file=sys.stderr)
sys.exit(1) sys.exit(1)
project = sys.argv[1] project = sys.argv[1]
articles = sys.argv[2:] output = sys.argv[2]
articles = sys.argv[3:]
site = mwclient.Site(project) site = mwclient.Site(project)
fig, ax = create_year_plot() fig, ax = create_year_plot()
@ -255,8 +271,8 @@ dénombrée comme une visite sur la page canonique.
ax.set_ylabel('Vues par jour') ax.set_ylabel('Vues par jour')
fig.legend() fig.legend(framealpha=1)
fig.autofmt_xdate() fig.autofmt_xdate()
fig.tight_layout() fig.tight_layout()
pyplot.show() pyplot.savefig(output)