pageviews: Export vers PGF
This commit is contained in:
parent
cd808ab6c1
commit
8b960eb911
|
@ -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 l’année')
|
ax.set_xlabel('Jours de l’anné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 où sera écrit le graphe.
|
||||||
article Nom(s) d’article(s) Wikipédia ciblé(s).
|
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
|
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
|
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
|
et toute visite sur une page de redirection pointant vers l’article 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)
|
||||||
|
|
Loading…
Reference in New Issue