generated at
各projectの被リンク数histogram
横軸のメモリ幅を統一したほうが比較しやすい

使用したscript
plot.py
from __future__ import print_function from __future__ import unicode_literals import requests import matplotlib.pyplot as plt import matplotlib as mpl import collections import argparse mpl.use("Agg") # matplotlibで日本語を使えるようにする plt.rcParams["font.family"] = "Cica" # お好きなFontに変えて下さい def main(project): pages = [] response = requests.get( f'https://scrapbox.io/api/pages/{project}/search/titles') followingId = response.headers.get('X-Following-Id') pages += response.json() while followingId == None: response = requests.get( f'https://scrapbox.io/api/pages/{project}/search/titles', params={'followingId': followingId}) followingId = response.headers.get('X-Following-Id') pages += response.json() pass print('Finish loading all data') # 取得結果の確認 for page in pages: print(f'title = {page["title"]}' f'\n\tlinks = {page["links"]}') print('Calculating the number of back links...') temp = [] for page in pages: temp+=page['links'] linkNum = collections.Counter(temp); print(linkNum) print('finished.') print('Plotting a histogram...') n, bins, patches = plt.hist(linkNum.values(), bins=max(linkNum.values())-min(linkNum.values()), log=True) [plt.text((bins[i+1]+bins[i])/2, n[i], int(n[i]), horizontalalignment='center') for i in range(len(bins)-1)] ax=plt.gca() ax.set_title(project) ax.set_xlabel('被リンク数') ax.set_ylabel('ページ数') plt.savefig(f'{project}.png') print('finished.') if __name__ == "__main__": # Command line argumentsの設定 parser = argparse.ArgumentParser( description="指定したscrapbox projectの被リンク数のhistogramを作成するscript") parser.add_argument('project',help='分析したいscrapbox project name') # argumentsを解析する args = parser.parse_args() project = args.project # main loop main(project)